photo->path())), -4); // 结果为0600而我系统缓存目录的权限是777,现在我就无法使用laravelUploadedFile 实例来处理上传文件,因为一旦使用$re" />
您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Linux >> mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。

mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。

来源:网络整理     时间:2018/1/27 0:59:33     关键词:

关于网友提出的“ mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。”问题疑问,本网通过在网上对“ mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。
描述:

系统: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()

求救!


解决方案1:

服务器(nginx)通过http请求request headershost(wx.piian.cn)行,匹配你配置的server_name,当匹配成功时,就会把数据按cgi接口定义的格式,发送给php处理。
至于域名(wx.piian.cn)如何找到对应的服务器,是因为会把域名的A记录或者CNAME解析到对应的公网IP上。而域名的DNS解析会优先在系统hosts记录里面寻找。

解决方案2:

终于找到问题了。
首先,我是在做微信开发,所以我的测试环境有两个域名,一个是本地的域名wx.dev,一个是wx.piian.cn,
然后我发现wx.dev是可以上传文件的,wx.piian.cn是不能上传文件的。然后我查看nginx的配置,发现我的程序目录的server_name只有wx.devwx.piian.cn是指向我的电脑,我的localhost是指向wx.dev程序目录的,于是我在server_name里加上了wx.piian.cn,现在上传文件没有问题了,有大神能仔细讲讲中间的细节吗?
我现在是知其然不知其所以然


以上介绍了“ mac环境下,mamp中表单上传文件,为什么上传的缓存文件是不可读的。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4536059.html

相关图片

相关文章