如何解决Internet Explorer文件上传无法通过mime类型检查
| 我将来自各种互联网来源的一些脚本拼凑在一起,以使表格正常工作。我遇到了一个我无法解决的问题。我创建的表单允许用户在字段中提交他们的数据,以及图像附件(验证:.EPS或.JPG格式)。 该脚本可以在Firefox和Safari中正常运行,但不能在Internet Explorer中运行。在IE中,无论您是否附加了正确类型的图像,它都会针对错误的文件类型返回错误。因此由于某种原因,IE似乎没有像PHP要求的那样验证文件类型。<?php
/* ....
snip
.... */
$filetype=$_FILES[\"prosp_client_logo\"][\"type\"];
/* ....
snip
.... */
elseif($filetype==\"application/postscript\" or $filetype==\"image/jpg\" or $filetype==\"image/jpeg\") {
/* ....
snip
.... */
?>
如果您需要任何澄清,请告诉我。
解决方法
http://www.php.net/manual/zh/features.file-upload.php#75932
理查德·戴维(Richard Davey)富有,来自corephp dot co dot uk 2007年6月22日12:05
[...]您可能倾向于根据$ _FILES数组中报告的mime类型来验证更新。但是请注意这一点-它是由浏览器而不是PHP或Web服务器设置的,并且浏览器不一致(新功能是什么?!)
IE会发送自己的
mime-type
(基于其文件系统关联)作为附件,该附件通常可能与您在代码中期望的不同。这些数据也可以被欺骗,因此最好不要相信浏览器对文件“ 1”的说法。
也:
http://www.php.net/manual/zh/features.file-upload.php#53133
keith在phpdiary dot org上,2005年5月24日11:14
[...]我最好的选择是让您检查文件的扩展名,并使用exif_imagetype()检查有效图像。许多人建议使用getimagesize()(如果文件确实是图像,则返回数组),否则返回false,但exif_imagetype()快得多。 (手册中是这样说的)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。