2016-08-08 6 views
2

У меня есть функция, которая загружает условия & условиям в папку. Я получаю расширение и тип MIME файла и проверяю, являются ли они действительными. В последнее время все файлы, которые я загружаю, возвращают $_FILES[$key]['size'] как 0, а файлы на локальном диске имеют размер файла. Когда я проверяю MIME-тип, используя следующий скрипт, он всегда возвращает inode/x-empty.Загрузка файла PHP всегда возвращает MIME-тип «inode/x-empty»

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$fileType = finfo_file($finfo, $file['tmp_name']); // Returns 'inode/x-empty' 
$expl  = explode('.', $file['name']); 
$fileExt = end($expl); 

Я не могу понять, почему это происходит, поскольку это не было пару месяцев назад. Я никогда не видел этого раньше.

Ниже приведен пример вывода $ _FILES: php.ini

Array 
(
    [name] => audite_marlow_logo.jpg 
    [type] => image/jpeg 
    [tmp_name] => /tmp/phpcHbiLN 
    [error] => 0 
    [size] => 0 
) 

В сервера более чем способен обрабатывать любые файлы, которые я загрузить. post_max_size установлен безумным 128M.

Все файлы, которые я загружаю, возвращают с помощью error с целым значением 0.

Я честно потерял, почему это происходит.

+0

быстрый вопрос ... это может произойти, если размер файла больше вашего значения php.ini 'post_max_size'. любой шанс это причина? очень маловероятно, если это всего лишь небольшой файл jpeg, но стоит попросить только убедиться, что он не является очевидным преступником. – Abela

+0

@Abela: Файл в моем примере имеет размер 76kb. Я могу загружать изображения на другую страницу, намного большую. –

+0

Оки, подумал, что это так. Возможно, это даст вам повод: http://stackoverflow.com/questions/7959615/filesfilesize-returning-0 что-то вышло из строя, код на этой странице должен помочь его диагностировать. – Abela

ответ

0

Потому что вы спрашиваете finfo (phpcHbiLN) имени файла tmp, однако $_FILE['type'] проверить finfo загруженного файла (audite_marlow_logo.jpg). Другим способом, finfo нужен абсолютный путь, поэтому sur tmp/phpcHbiLN - это абсолютный путь.

inode/x-empty означает файл, который вы пытаетесь проверить пустой делают Сюр ваш файл readeable с простой проверкой is_readable(), file_exists() или is_file().

 Смежные вопросы

  • Нет связанных вопросов^_^