从HTML表单上传文件时出错

时间:2010-07-21 16:59:39

标签: php html

这是一个问题。 我有一个HTML表单,其中包含几个字段。 其中一个字段 - “上传文件”。 当我上传文件时,一切正常。但是当我选择提交没有文件的表单时,它会给出错误消息:“上传文件时出错,请再试一次”。在我看来,脚本认为上传文件是强制性的。 我该如何更改?

这是我的PHP:

//File upload

// Where the file is going to be placed 
$target_path = "uploads/";

// Add the original filename to our target path.  
//Result is "uploads/filename.extension" 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}   

//End of file upload

谢谢!

3 个答案:

答案 0 :(得分:1)

您应该使用 is_uploaded_file

功能进行检查

在调用函数move_uploaded_file

之前尝试添加以下条件
if (is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {

答案 1 :(得分:0)

move_uploaded_file会返回bool,truefalse,具体取决于操作是否成功。

解决方案是更严格地检查,例如如果文件是通过is_uploaded_file功能上传的。

  

为了正常工作,函数is_uploaded_file()需要像$_FILES['userfile']['tmp_name']这样的参数, - 客户端计算机上$_FILES['userfile']['name']上传文件的名称不起作用。

答案 2 :(得分:0)

move_uploaded_files的目标路径应该是文件夹,而不是文件。

您还应该检查文件夹是否为is_writeable和is_dir。