PHP-访问表单提交文件以进行验证
我一直在使用$\u POST对文本条目进行表单验证。现在我必须通过HTML type='file'表单验证上传的文件。我无法通过$\u POST或$\u文件访问它们。有没有其他方法可以做到这一点?我需要获取该文件,以便使用getimagesize()或MIME_content_type()检查MIME类型 以下是我表格中的相关信息:PHP-访问表单提交文件以进行验证,php,html,forms,validation,post,Php,Html,Forms,Validation,Post,我一直在使用$\u POST对文本条目进行表单验证。现在我必须通过HTML type='file'表单验证上传的文件。我无法通过$\u POST或$\u文件访问它们。有没有其他方法可以做到这一点?我需要获取该文件,以便使用getimagesize()或MIME_content_type()检查MIME类型 以下是我表格中的相关信息: <form action='submission.php' method='POST'> <p>Upload photo of pr
<form action='submission.php' method='POST'>
<p>Upload photo of professor</p>
<input type="file" name="pic" accept="image/*>
<p>Upload video of professor</p>
<input type="file" name="video" accept="video/*">
<p><input type="submit" onclick="validate()"></p>
</form>
将enctype=“multipart/form data”
添加到我的字段并将$field\u列表设置为$\u文件后,它几乎可以正常工作。但是,isset($\u FILES['pic'])
似乎总是正确的,因为当我尝试在不上传的情况下提交时,会收到以下警告:
validateimage($errors,$_文件,'pic','/^image/i')代码>
警告:mime_content_type():第36行/Applications/XAMPP/xamppfiles/htdocs/cs4ww3/Assignment 3/validate.inc.php中的空文件名或路径
为了使用提交的文件填充$\u文件
,您需要在html中将表单上的enctype
attr设置为multipart/form data
:
<form action='submission.php' method='POST' enctype="multipart/form-data">
...
</form>
...
表单sholud be@Shanukk中缺少enctype谢谢!它正在提交,现在没有给我错误,但我的验证似乎没有按预期工作。你看到什么问题了吗?-你能给我们看一下你的完整代码吗?@shanukhhmm。。。我想这些都是相关的部分,其他的东西可能太笨重了。基本上我有一个$errors数组,我用不同的验证函数填充它。如果我有一个像`这样的表单,在服务器端验证之后,它会创建一个错误$errors['username']。从我调用validateimage()的方式可以看出,它首先无法从“pic”中找到文件。啊,我明白了,谢谢。它正在提交,现在没有给我错误,但我的验证似乎没有按预期工作。你看到有什么问题吗?我唯一能看到的是你应该在你的if语句中尝试mime\u内容类型($field\u list[$field\u name]['tmp\u name])
。此函数需要文件名,您将向其传递整个数组。
<form action='submission.php' method='POST' enctype="multipart/form-data">
...
</form>