Загрузка файлов не работает в IE, но работает в FF, Chrome и Safari - PullRequest
1 голос
/ 27 августа 2009

Я в тупике. Я создал процесс загрузки изображений, который работает в любом браузере, кроме 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 ...

Ответы [ 3 ]

4 голосов
/ 27 августа 2009

Если вы загружаете JPEG, они обычно отправляются с mimetype image / pjpeg в IE.

В частности, я столкнулся с этой проблемой с CSV-файлами. Windows-машины будут давать вам различные типы MIME в зависимости от того, что вы установили для открытия CSV-файлов. / endgripe;)

2 голосов
/ 27 августа 2009

Посмотрите, что вы получаете в своем массиве $ _FILES, выполнив это:

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

и используйте getimagesize для определения типа изображения, так как типы пантомимы могут быть подделаны, как правильно указал @Juddling.

1 голос
/ 27 августа 2009

Вы должны проверять расширения файлов, а не заголовки, отправляемые вместе с изображением. Может быть, IE не отправляет их, так как они могут быть подделаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...