Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-访问表单提交文件以进行验证_Php_Html_Forms_Validation_Post - Fatal编程技术网

PHP-访问表单提交文件以进行验证

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

我一直在使用$\u POST对文本条目进行表单验证。现在我必须通过HTML type='file'表单验证上传的文件。我无法通过$\u POST或$\u文件访问它们。有没有其他方法可以做到这一点?我需要获取该文件,以便使用getimagesize()或MIME_content_type()检查MIME类型

以下是我表格中的相关信息:

<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>