0

PHP代码:

$target_path='uploads/';
//$target_path=$target_path.basename($_FILES['photo']['name']);
$res=move_uploaded_file($_FILES['photo']['tmp_name'],$target_path);
if($res)
//perform insert query
else
//echo 'file not uploaded';

HTML 代码:

<td colspan="3"> <input type="file" name="photo" id="photo"> </td>

执行后,图像文件不会移动到 target_path 文件夹。此外, $res 的值仍然为空。

我需要 $res 的值,因为如果变量具有“true”作为值,我想执行插入查询。

上传的文件没有错误。它存在,target_path 也存在。target_path 文件夹中也没有同名文件。

4

4 回答 4

0

您的文件输入是否在 HTML 的表单元素中?你的表单元素上肯定有 enctype="multipart/form-data" 吗?

如果您有上述情况,请执行此操作以调试正在发生的事情。这将打印出文件数组,以便您查看是否有问题:

exit(var_dump($_FILES));
$target_path='uploads/';
//$target_path=$target_path.basename($_FILES['photo']['name']);
$res=move_uploaded_file($_FILES['photo']['tmp_name'],$target_path);
if($res)
//perform insert query
else
//echo 'file not uploaded';
于 2013-01-21T11:46:46.823 回答
0

我只是使用 copy() 而不是 move_uploaded_files 并且它有效。请注意,我的表格中没有提到 enctype。不知道这是否是 move_uploaded_files 无法正常工作的原因。但是没有它 copy() 肯定可以工作。

还要考虑 oldskool 上面的评论

"$_FILES['photo']['tmp_name'] 将保存上传的完整路径,例如 /tmp/asx823ASDfg,因此使用此语法将生成 /upload//tmp/asx823ASDfg,这是一个绝对路径(很可能)不存在的文件夹。 – Oldskool

于 2013-01-22T06:26:35.753 回答
0

这是一个工作代码

$target_path='/uploads/';
$target_path=$target_path.uniqid().$_FILES['upload_photo']['name'];
$res=move_uploaded_file($_FILES['upload_photo']['tmp_name'],$target_path);
if($res)
//perform insert query
else
//echo 'file not uploaded';

 <input type="file" name="upload_photo" id="upload_photo"> 
于 2013-06-20T11:35:20.337 回答
-1

请试试这个方法。。

move_uploaded_file($_FILES['photo']['tmp_name'], "/upload/".$_FILES['photo']['tmp_name']);

于 2013-01-21T09:41:09.680 回答