这是一个问题。 我有一个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
谢谢!
答案 0 :(得分:1)
您应该使用 is_uploaded_file
功能进行检查在调用函数move_uploaded_file
之前尝试添加以下条件if (is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {
答案 1 :(得分:0)
move_uploaded_file
会返回bool,true
或false
,具体取决于操作是否成功。
解决方案是更严格地检查,例如如果文件是通过is_uploaded_file
功能上传的。
为了正常工作,函数
is_uploaded_file()
需要像$_FILES['userfile']['tmp_name']
这样的参数, - 客户端计算机上$_FILES['userfile']['name']
上传文件的名称不起作用。
答案 2 :(得分:0)
move_uploaded_files的目标路径应该是文件夹,而不是文件。
您还应该检查文件夹是否为is_writeable和is_dir。