【前言】
?
【主体】
? 我在控制器中输出打印临时文件位置
class="php">dump($_FILES['thumb']);
?浏览器显示的tmp_name临时文件为系统默认位置,即使我修改了php.ini里的upload_tmp_dir,设置为自定义的临时目录,重启apache,phpinfo()的结果也是我设置的目录了。
可上传文件的临时目录还是默认的/tmp,这是什么原因?
?
谷歌了半天发现网上方法众说纷纭,有的方案甚至是相反的,大多数随意转载的。。。。
走了不少弯路,但唯一肯定的应该是权限问题。所以又找了下,终于找到一种切实可行的方案
【方案】
1. 用文本编辑器打开 /usr/local/php/etc/php.ini 找到以下位置:
upload_tmp_dir = /data/wwwroot/tmp
2. 检查 /data/wwwroot/tmp 是否可读写。
Linux 下,可以简单的设置?
chmod 0777 /data/wwwroot/tmp
Windows 下,在目录上点击右键,设置安全 > 目录权限,加入 everyone 可读写。
?
解决完毕,浏览器临时目录输出为
array(5) {
["name"] => string(27) "2PQ_23XN5@]9RXI(9AF`4GG.png"
["type"] => string(9) "image/png"
["tmp_name"] => string(37) "/phpstudy/www/Public/Upload/phpDeXhYN"
["error"] => int(0)
["size"] => int(19775)
}
?
?
?
?
?
?
?
?
?
?
.