PHP可以';t从HTML表单上载文件
这是我处理表格的方式:PHP可以';t从HTML表单上载文件,php,html,file-upload,file-io,Php,Html,File Upload,File Io,这是我处理表格的方式: # Create the message # ---------------------------------------------------------------- $name = $_POST['name']; $email = $_POST['email']; $title = $_POST['title']; $course = $_POST['course']
# Create the message
# ----------------------------------------------------------------
$name = $_POST['name'];
$email = $_POST['email'];
$title = $_POST['title'];
$course = $_POST['course'];
$file = $_POST['file'];
$message = "Name: ".$name."\n";
$message .= "Email: ".$email."\n\n";
$message .= "Title of Article: ".$title."\n";
$message .= "Program: ".$course."\n\n";
$message .= "Additional Info: ".$info;
# Upload temporary files
# ----------------------------------------------------------------
$uploaddir = '/home/public/uploads/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile) == false) {
echo 'Could not move file';
exit;
}
if ($_FILES['file']['type'] != "application/pdf") {
echo 'Not a pdf file';
unlink($uploadfile);
exit;
}
最终产品有望发送一封电子邮件,并将该文件作为附件。现在我失败了,收到了内置的“无法移动文件”消息。有什么明显的原因吗
$file
是我从HTML文件对话框中获得的(input type=“file”
)您的表单需要设置相应的enctype
属性,即
<form enctype="multipart/form-data" method="post" action=... >
更新
一些建议
$\u POST['file']
值中你不会得到任何有用的东西(或根本没有)。对于所有上载的文件数据,请使用$\u FILES
数组1.表格是否设置为:
<form method="POST" enctype="multipart/form-data" action="INSERT ACTION">
二,。您将文件发布到的文件夹是否设置为777?是的,我将该文件夹设置为777,添加了enctype,我正在解决几个语法错误。我想这可能就是问题所在。我第二次添加enctype时,似乎没有任何内容存储在$\u POST中。。。。这正常吗?是的。您需要使用$_文件[“”]@杰克,他仍然应该在
$\u POST
中获取其他表单数据。另外,它是$\u文件
(复数)@Phil-Hmm,实际上现在我想起来了,这是真的。古怪的是的,他是对的,这是$\u文件
很抱歉弄错了。谢谢你提供的信息,我至少会用regex检查扩展名。关于我在下面发表的评论,你有什么想法吗?@Max你不需要改变你的验证方法,只要把“PDF检查”块移到“移动上传的文件”块上面就行了是的,我刚刚完成了代码。它的工作完美无瑕,谢谢:)我正在执行所有检查之前,我上传文件。