Storage 使用中的一个问题

在做上传图片的时候遇到的一个问题:

首先使用 request 接收到图片然后保存

保存在了 storage/app/public 文件夹下

file

然后根据文档想要公开访问该文件夹,需要创建一个符号链接

然后运行 php artisan storage:link 创建了符号链接

此时 public 文件夹下多了一个 storage 文件夹

file

里边的文件就是 storage/app/public 里的文件

此时视图文件访问 public/storage里的文件访问不到,提示找不到路由

file

------------- 解决:

一朋友说,php 在 windows 下不能读取快捷方式(也就是符号链接),而在 linux 下可以

也就是说虽然在本地不能读取,但是传到服务器上就可以,哪天测一下试试

------------- 解决:(2019-1-21)

这个问题最后还是被解决了,方法很简单,使用管理员模式打开系统自带的命令行cmd,然后登陆虚拟机执行即可,不知道为什么,很多这种疑难杂症换一个命令行就可以解决,可能系统自带的cmd权限还是要高一点。

今天突然想起来这个帖子,遂更新一下

长路漫漫,唯键盘作伴。:octocat: 我是猫哥,欢迎关注我的 「个人博客 」和微信公众号「前端猫哥」 :new_moon_with_face:
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 18

这么坑爹,那自己还要搭建个虚拟机,安装个linux系统

7年前 评论

在homestead下不能创建软链
file

以管理员方式打开git bash,然后vagrant upvagrant ssh之后,仍旧不能创建。

查询到一种说法,虚拟机从安全角度禁止了软链的创建。
但是目前为止并没有找到在homestead下创建软链的办法……stackoverflow上的答案都是使用管理员权限打开虚拟机,可是我并没有用,有人在homestead下创建过软链吗?

7年前 评论

@泽 修改 Vagrantfile,添加这个,然后运行 vagrant up 的那个命令行也要用管理员运行。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

    .
    .
    .
    config.vm.provider "virtualbox" do |v|
        v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
    end
end
7年前 评论

@oustn 成功了,太感谢你了!WOW。我之前是用了一个折衷的办法,就是在homestead.yaml里写storage软链

file

用了你的办法,直接可以创建了

file

7年前 评论

大兄弟, 你的问题解决了没。 我也遇到这个问题了~~求解答@oustn @泽

6年前 评论
前端猫哥

@菠菜 看楼上的回复,在 linux 里创建软连接之后就可以了,在windows下是不行的

我直接换成了 intervention/image 这个扩展,用这个扩展来保存图片,直接保存在 public 下,还可以处理图片,感觉还挺方便的

6年前 评论

@SadCreeper 在mac下创建的软连接是不是也不可以啊

6年前 评论

@SadCreeper 搞了一晚上了。这个软连接的问题 。恼火啊

6年前 评论
前端猫哥

@菠菜 如果你位置没问题,就是访问不到的话,可能是软连接没成功,可能是mac系统限制了,我没用过mac不清楚

6年前 评论

位置没有问题的。 应该是限制了, 我试试用你说的那个扩展, 谢谢啦大兄弟@SadCreeper

6年前 评论
前端猫哥

@菠菜 我有一篇文档,关于安装intervention/image 扩展的,你可以参考一下 http://123.207.171.47/article/10

6年前 评论

路径错了 是 storage 不是 public/storage 其实通过request store后会返回一个path的

6年前 评论
北冥

@泽 这是laravel 5.? 5.1可以吗

6年前 评论

@北冥 我是5.2之后的版本,5.1没有试过

6年前 评论
zxg321

WINDOWS 改 NGINX 或者 APACHE 虚拟目录方便点

5年前 评论

我用命令方式创建了软链接,windows服务器下面可以访问,但是手动再windows下面创建快捷方式,就不能访问,为啥?

4年前 评论

@oustn 谢谢分享,按照你的方法直接可以创建了。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!