[英]Internet Explorer file upload fails mime-type check
我將來自各種互聯網來源的一些腳本拼湊在一起,以使表格正常工作。 我遇到了一個我無法解決的問題。 我創建的表單允許用戶在字段中提交他們的數據,以及圖像附件(驗證:.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/en/features.file-upload.php#75932
理查德·戴維(Richard Davey)富有,來自corephp dot co dot uk 2007年6月22日12:05
您可能傾向於根據$ _FILES數組中報告的mime類型來驗證更新。 但是請注意這一點-它是由瀏覽器設置的,而不是由PHP或Web服務器設置的,並且瀏覽器不一致(有什么新功能?!)
IE將為附件發送自己的mime-type
(基於其文件系統關聯),該類型通常可能與您在代碼中期望的不同。 這些數據也可以被欺騙,因此最好不要相信瀏覽器對文件的mime-type
所說的話。
也:
http://www.php.net/manual/en/features.file-upload.php#53133
keith在phpdiary dot org上2005年5月24日11:14
[...]我最好的選擇是讓您檢查文件的擴展名,並使用exif_imagetype()檢查有效圖像。 許多人建議使用getimagesize()(如果文件確實是圖像,則返回數組),否則返回false,但是exif_imagetype()更快。 (手冊中是這樣說的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.