Странная ошибка загрузки файла CodeIgniter

Я настроил «Uploadify» для загрузки файлов на свой сервер, где я обрабатываю их с помощью библиотеки загрузки файлов CodeIgniter.

Однако я думаю, что Uploadify изменяет тип MIME файлов или делает что-то еще странное, из-за чего CodeIgniter выдает ошибку «тип файла не разрешен», несмотря на то, что это разрешено.

Например, я разрешил файлы JPEG, но когда я загружаю их с помощью Uploadify, я получаю эту ошибку.

Есть ли обходной путь для этого? По сути, я хочу, чтобы была разрешена только загрузка изображений, например .jpg, .jpeg, .bmp, .png. Нужно ли мне вручную проверять расширение файлов или есть лучший вариант?


person Ali    schedule 26.06.2011    source источник


Ответы (1)


Вы правы, uploadify использует MIME-тип application/octet-stream для большинства (всех?) Файлов, которые он загружает. Я думаю, что это на самом деле вызвано тем, что Flash обрабатывает загрузку, но я не уверен на 100%.

В вашем контроллере, где вы обрабатываете загрузку, вставьте print_r($_FILES) и проверьте, что это за mime-тип, а затем просто добавьте его в свой application/config/mimes.php файл.

Итак, в вашем mimes.php файле у вас, вероятно, будет что-то вроде:

'jpg'   =>  array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
person tplaner    schedule 26.06.2011
comment
Проблема в том, что пользователь может определить URL-адрес, по которому выполняется загрузка загрузок, а затем он может вручную загрузить любой вредоносный файл на этот URL-адрес и передать поток октетов типа mime, и он будет принят. Вместо этого я остановился на getImageSize(), чтобы подтвердить, является ли файл изображением или нет. - person Ali; 26.06.2011
comment
Да, это проблема, к сожалению, проблема с Uploadify. Двумя возможными решениями являются воссоздание загруженного изображения через библиотеку PHP GD после загрузки (любой файл, не являющийся изображением, вызовет ошибку) или поиск другого сценария загрузки. - person tplaner; 26.06.2011
comment
как насчет файла BMP - person Viral Patel; 25.11.2020