【发布时间】:2012-12-24 07:58:51
【问题描述】:
我似乎遇到了有趣的问题。我有一个上传图像并将值存储在数据库表中的表单。表单上传图像文件 OK 并使其可用于处理。问题如下;使用 move_uploaded_file 到指定目录不起作用,但是使用 copy() 到这个目录可以。
目前代码如下:
$file = $_FILES['doc_path'];
$ext = array_pop(explode('.', $file['name']));
$filename = uniqid() . '.' . $ext;
if ($file['error'] == UPLOAD_ERR_NO_FILE && ! strlen($this->filename)) {
throw new Exception('Please select a file to upload');
} elseif ($file['error'] == UPLOAD_ERR_NO_FILE) {
return true; // already have a file
} elseif ($file['error']) {
throw new Exception('File upload error');
} elseif (! $file['size']) {
throw new Exception('File is of zero length');
} else {
$path = 'uploads/' . $filename;
if (! move_uploaded_file($file['tmp_name'], $path)) {
throw new Exception('Could not upload file');
}
return $filename;
}
我检查了目标目录是否存在,并且该目录是可写的。使用 move_uploaded_file() 不会产生错误,只是捕获了“无法上传文件”异常。
会想到如果这是一个权限问题,那么用 move_uploaded_file 代替 copy 就行不通了吗?
【问题讨论】:
-
你有没有解决这个问题?我也遇到了同样的问题。
-
哎呀,没有展开下面的评论线程。我找到了 print_r($_FILES);对我很有帮助。谢谢。
标签: php file-upload