Php 为什么我的表单只接受.jpeg文件

Php 为什么我的表单只接受.jpeg文件,php,forms,upload,Php,Forms,Upload,我做了这个表格: <form enctype="multipart/form-data" action="php/handler.php" method="post" name="uploaderform"> <table> <tr><td align="right">File:</td><td><input type="hidden" name="MAX_FILE_SIZE" value="30

我做了这个表格:

   <form enctype="multipart/form-data" action="php/handler.php" method="post" name="uploaderform">
    <table>
    <tr><td align="right">File:</td><td><input type="hidden" name="MAX_FILE_SIZE" value="30000"/><input type="file" name="filetoup" id="zzz"/></td></tr>
    <tr><td align="right">Folder:</td><td><select id="category" name="category"><option value="foo/">some</option><option value="poo/">some2</option></select></td></tr>
    <tr><td></td><td><input type="submit" value="Upload" /></td></tr>
    </table>
  </form>
我认为这是我表单中的内容,因为我可以上传.jpeg而没有任何错误,但是.gif和.png没有。如果我说的不对,那是什么原因造成的呢?有解决办法吗?还是我做的每件事都错了

最后,是否将.jpg识别为.jpeg

/编辑

我不认为我解释得对,如果我尝试上传一个jpeg文件,它可以正常工作,但是如果我尝试任何其他文件类型,它给我的文件名不能为空,所以我的表单不想接受gif并通过post发送,就像post是空的一样。为什么会发生这种情况

//编辑 是的,就是这样,我试过这个

$something=$_FILES["filetoup"]["tmp_name"];
var_dump($something);
它给了我字符串(0)”。表格不想接受,但为什么?我没有在表格上加任何限制

///编辑


我发现了我的问题,它不接受任何其他文件类型,因为我尝试上载的文件太大(动画gif),最大文件大小太小。

可能尝试将类型与IF语句进行比较,而不是将tmp\U名称与exif\U imagetype进行比较$_文件[“filetoup”][“type”])==IMAGETYPE\u GIF


同样,对于JPEG,也就是:“注意:IE要识别jpg文件,类型必须是pjpeg,对于FireFox,类型必须是JPEG。”因此,可能需要研究一下这一点。

如果JPEG、png和gif需要在不同的文件夹中,请使用一个开关盒而不是所有的if,并在盒中为每个JPEG、png和gif设置$target_路径。。如果不允许tmp图像文件,则将默认设置为错误


这只是一种方法,希望能有所帮助。

。jpg是3个字母的扩展名,JPEG的缩写,所以是的。此外,
$\u FILES['somefile']['type']
是确定文件实际mime类型的不可靠方法。它是可以伪造的。不过,不确定在PHP中,目前认为确定文件mime类型最可靠的方法是什么。但是对于图像,您可以测试它是否实际上是一个带有
getimagesize($filename)
的图像,失败时返回false(并生成
E\u警告
)。这是一个绕过mime类型检测的黑客,但它对图像起到了作用。“但不确定目前在PHP中确定文件mime类型的最可靠方法是什么。”哈,我错过了OP问题中使用的
exif_imagetype
。也许这是一个可靠的方法。。。
Warning: exif_imagetype() [function.exif-imagetype]: Filename cannot be empty in      C:\xampp\htdocs\atthepc\php\handler.php on line 7
$something=$_FILES["filetoup"]["tmp_name"];
var_dump($something);