簡體   English   中英

文件上傳在IE中不起作用,但在FF,Chrome和Safari中有效

[英]File upload not working in IE, but works in FF, Chrome, and Safari

我很沮喪 我創建了一個上載圖像的過程,該過程可以在除Internet Explorer之外的所有瀏覽器中使用。 我沒有檢查IE7,但IE8似乎沒有檢查文件擴展名。 我不斷收到錯誤消息:“您必須上傳jpg,gif,bmp。”

  /* image uploading */
  $target_path = "img/";
  $image = $_FILES['crebusimage'];
  $image['name'] = mysql_real_escape_string($image['name']);
  $target_path .= $crebustime."_".$image['name'];
  $valid_types = array("image/jpg", "image/jpeg", "image/bmp", "image/gif", "image/jpe", "image/jfif", "image/png");

  $field = 'crebusimage';
  if(strlen($image['name']) == 0){
    $form->setError($field, "*please choose an image");
  }elseif(!in_array($image['type'], $valid_types)){
    $form->setError($field, "*You must upload a jpg, gif, or bmp");
  }else{
    $busimg = $crebustime."_".$image['name'];
    move_uploaded_file($image['tmp_name'], $target_path);
  }

    <td><b>Business Logo<br />(100Kb or less 100x100px)</b></td>
    <td><input type="file" name="crebusimage" value="1"></td>
    <td><input type="hidden" name="MAX_FILE_SIZE" value="100000" /></td>
    <td><?php echo $form->error('crebusimage'); ?></tD>

我該如何使該東西在邪惡的IE中起作用...

如果您要上載jpeg,它們通常會與IE中的mimetype image / pjpeg一起發送。

具體來說,我在csv文件中遇到了此問題。 Windows計算機會根據您打開csv文件所安裝的內容為您提供不同的模仿類型。 / endgripe;)

通過執行以下操作,查看您在$ _FILES數組中得到的內容:

echo '<pre>';
print_r($_FILES);
echo '</pre>';

並使用getimagesize來確定圖像類型,因為@Juddling正確指出了mime類型可以被欺騙。

您應該檢查文件擴展名,而不是檢查與圖像一起發送的標題。 IE可能不會發送這些郵件,因為它們可能是偽造的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM