我想在远程主机上上传图像(本地一切正常(。
我像我以前的其他项目一样使用了下面的代码来做到这一点:
if (move_uploaded_file($_FILES["scan"]["tmp_name"], 'images/scans/1.jpg')) {
chmod ('images/scans/1.jpg','0644');
}
但是每次我在互联网上运行这段代码时,我都会收到一个错误:
警告:move_uploaded_file(images/profile/Mordent.jpg( [function.move-uploaded-file]: 无法打开流:权限被拒绝...
我必须scans
目录权限更改为 0777,然后我可以上传图像。否则我不能。这对我来说很奇怪。我已经在不同的项目中多次使用过这段代码,我没有任何问题。
images/scans/
必须由Web服务器用户写入,并且不需要0777
,这是全局可写的。 首先,images
必须可由 Web 服务器用户读取,并在最后一个位置(如 0755
(具有5
。 scans
目录必须由 Web 服务器用户拥有或可由其写入。 最好将其归Web服务器用户所有,其中其权限也可以0755
。
根据
php.net:
注意:此功能不适用于远程文件,因为 要检查的文件必须可通过服务器的文件系统访问。