系统:mac
php环境:MAMP
php框架:laravel
当我使用表单上传时,发现上传上来的缓存文件是不可读的。
echo substr(sprintf("%o", fileperms($this->photo->path())), -4); // 结果为0600
而我系统缓存目录的权限是777,现在我就无法使用laravelUploadedFile
实例来处理上传文件,因为一旦使用$request->photo->store('photos')
就会弹出权限不够错误。错误如下:
[2018-01-09 17:22:57] local.ERROR: Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException: The file /Applications/MAMP/tmp/php/phpUulx0L could not be accessed in /Users/pan/code/wechat/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php:125
Stack trace:
#0 /Users/pan/code/wechat/vendor/symfony/http-foundation/File/File.php(79): Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser->guess('/Applications/M...')
#1 /Users/pan/code/wechat/vendor/symfony/http-foundation/File/File.php(58): Symfony\Component\HttpFoundation\File\File->getMimeType()
求救!
终于找到问题了。
首先,我是在做微信开发,所以我的测试环境有两个域名,一个是本地的域名
wx.dev
,一个是wx.piian.cn
,然后我发现
wx.dev
是可以上传文件的,wx.piian.cn
是不能上传文件的。然后我查看nginx的配置,发现我的程序目录的server_name
只有wx.dev
,wx.piian.cn
是指向我的电脑,我的localhost是指向wx.dev
程序目录的,于是我在server_name
里加上了wx.piian.cn
,现在上传文件没有问题了,有大神能仔细讲讲中间的细节吗?我现在是知其然不知其所以然