我正在尝试测试 PHP 中的 http 图像上传功能。我在 OSX(本地)和 Ubuntu(远程)上的 Apache 上都尝试过这个功能。
在 php.ini 中我设置了upload_tmp_dir = /var/tmp/http-upload
。tmp
和都http-upload
将权限设置为drwxrwxrwt
。
每次我尝试上传时都会收到错误消息,提示文件在临时位置不存在。
我的配置中是否缺少了什么?
实际的上传功能是:
if ($_FILES) {
$target_path = '/assets/logos' . basename($_FILES['logo']['name']);
}
if (move_uploaded_file($_FILES['logo']['tmp_name'], $target_path)) {
echo 'success';
}
else {
echo 'fail';
}
具体错误如下:
Warning: move_uploaded_file(/logos/1317156765-shinetsu.gif): failed to open stream: No such file or directory in upload.php on line 8 Warning: move_uploaded_file(): Unable to move '/tmp/http-upload/php8CNWja' to '/logos/1317156765-shinetsu.gif' in upload.php on line 8 fail
答案1
我怀疑它试图将您上传的文件移动到 /assets/logos,而不是 /var。您可能想尝试使用 ./assets/logos,或以某种方式获取您网站的基本目录。