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 code:
<td colspan="3"> <input type="file" name="photo" id="photo"> </td>
执行后,图像文件不会移动到target_path文件夹。此外,$ res的值仍为空。
如果变量的值为“true”,我需要$ res的值,因为我想执行插入查询。
上传的文件中没有错误。它存在,target_path也存在。 target_path文件夹中没有相同名称的文件。
答案 0 :(得分:0)
您的文件是否输入HTML中的表单元素?你有没有enctype =&#34; multipart / form-data&#34;在你的表单元素上?
如果您有上述内容,请执行此操作以调试正在进行的操作。这将打印出文件数组,以便您查看是否存在问题:
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';
答案 1 :(得分:0)
我只是使用copy()而不是move_uploaded_files而且它有效。请注意,我的表单中没有提到的enctype。不知道是不是因为move_uploaded_files不能正常工作。但是copy()肯定没有它。
还要考虑oldskool上面评论的内容
“$ _ FILES ['photo'] ['tmp_name']将保存上传的完整路径,如/ tmp / asx823ASDfg,因此使用此语法将导致/ upload // tmp / asx823ASDfg,这是绝对的一个(最有可能)不存在的文件夹的路径。 - Oldskool
答案 2 :(得分: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">
答案 3 :(得分:-1)
请尝试这种方式..
move_uploaded_file($_FILES['photo']['tmp_name'],
"/upload/".$_FILES['photo']['tmp_name']);