【发布时间】:2014-06-24 20:57:28
【问题描述】:
我已通过 FileZilla 将我的网站上传到我的大学服务器。当我尝试上传图片时,它给了我错误。 (在 localhost 中测试时效果很好)
move_uploaded_file(images/a1d91430cf89bfcaa1a5fa953ebab2dc000e0eed.jpg): failed to open stream: Permission denied
move_uploaded_file(): Unable to move '/tmp/phpF1v2O3' to 'images/a1d91430cf89bfcaa1a5fa953ebab2dc000e0eed.jpg'
这里是编码
if (!array_key_exists('image', $add_image_errors)) {
$new_name= (string) sha1($file['name'] . uniqid('',true));
$new_name .= ((substr($ext, 0, 1) != '.') ? ".{$ext}" : $ext);
$dest = "images/$new_name";
if (move_uploaded_file($file['tmp_name'], $dest)) {
$_SESSION['image']['new_name'] = $new_name;
$_SESSION['image']['file_name'] = $file['name'];
echo '<h4>The file has been uploaded!</h4>';
} else {
trigger_error('The file could not be moved.');
unlink ($file['tmp_name']);
}
} // End of array_key_exists( ) IF.
我查看了许多论坛并了解这是文件权限的问题。因此,我将图像文件夹的权限从 FileZilla(755 到 777))更改了,但是由于某种原因它不允许我更改。
然后我尝试添加 chmod ("images",0777),但我给了我同样的错误 - chmod(): Permission denied
这里是编码
$dest = "images/$new_name";
chmod ("images",0777);
关于如何更改权限或编码中的任何替代方案以便图像可以上传和写入图像文件夹的任何想法?
我是 PHP 新手
非常感谢
【问题讨论】:
-
您可能没有更改文件权限的权限。此外,当服务器是运行 php 的 Windows 服务器时,我已经看到了这种错误。
-
大学的服务器可能不允许您或任何人执行任何特殊任务。联系系统管理员。
-
看起来你无法控制。在大学系统中不足为奇。想象一下,如果他们让任何新手上传他们想要的任何内容,他们的系统会被多么破坏。
-
我也是这么想的。 @凯青
-
我认为这是您服务器的 tmp 目录中的权限问题。在某些共享主机中,我们无权使用 tmp_dir... 在您的根项目文件夹中创建一个假的 tmp 目录并尝试使用
ini_set('upload-tmp-dir', __DIR__ . '/tmp');更改您的 tmp 目录不要忘记将chmod 777应用到新的 tmp 目录.
标签: php