Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Бред при загрузке файлов на сервер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Codeigniter 3
razorg1991
Отправлено: 28 Декабря, 2015 - 13:41:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




Накодил форму загрузки с обработчиком на разрешенный тип файла.
Ситуация такая (туповатая):
Есть ноут, на нем денвер. На ноуте все проверки на тип файла проходят норм.

PHP:
скопировать код в буфер обмена
  1.  
  2. $config['allowed_types'] = 'txt|csv|xlsx';
  3. $this->upload->initialize($config);
  4.  


Т.е. при загрузке иного расширения нас посылают...


Скопировал весь дистрибутив (не частями, а как есть всю папку, т.е. где-то ошибиться не мог) с проектом и базу на стационарный комп.
На компе стоит такой же денвер (может версия чуточку старее). Кинул туда папку с проектом и базу залил.

Далее пробую загружать файлы типа xlsx - и тут "балалайка" Не понял !!!!! Меня посылают и говорят, что "Загрузка файлов данного типа запрещена." Причем сообщение не системное php, а из Codeigniter. пробую другие типы загружать (txt csv) все норм грузит.

Я щас ничего не понял? Как это возможно? Или в конфиге сервера есть где-то запреты на загружаемые файлы?
 
 Top
Sail
Отправлено: 28 Декабря, 2015 - 14:10:02
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




razorg1991 пишет:
пробую загружать файлы типа xlsx

А файл точно с расширением xlsx, а не xls?
 
 Top
razorg1991
Отправлено: 28 Декабря, 2015 - 14:18:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




Sail пишет:
razorg1991 пишет:
пробую загружать файлы типа xlsx

А файл точно с расширением xlsx, а не xls?


Да точно уже перепроверял с десяток раз. Вот щас даже ради интереса дал добро на xls - его тоже посылает! Не понял

PHP:
скопировать код в буфер обмена
  1.  
  2. $config['allowed_types'] = 'txt|csv|xlsx|xls';
  3.  


Посылает эти 2 расширения xlsx и xls причем на ноуте все норм. Я ни фига не могу понять!
 
 Top
Sail
Отправлено: 28 Декабря, 2015 - 14:30:29
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




razorg1991, вот похожая проблема: CodeIgniter's file upload library ignores allowed_types?
Советуют проверить и дописать при необходимости в файл mimes.php.
 
 Top
razorg1991
Отправлено: 28 Декабря, 2015 - 14:43:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




Sail пишет:
razorg1991, вот похожая проблема: CodeIgniter's file upload library ignores allowed_types?
Советуют проверить и дописать при необходимости в файл mimes.php.


Это первое, о чем я подумал.

Эти расширения там уже по умолчанию забиты

PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
  3. 'xls'   =>      array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
  4.  

(Добавление)
Пробовал вообще левый скрипт который грузит и обрабатывает xlsx. Так вот он все грузит и обрабатывает на ноуте и стационарнике. Значит проблема в Codeigniter Огорчение
Вот это уже капец !!!!
 
 Top
razorg1991
Отправлено: 28 Декабря, 2015 - 21:42:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




РЕШИЛ ПРОБЛЕМУ!!!!! Улыбка

Все дело в mime type.
Браузеры стационарника не правильно определяют mime type не только экселя, но и верда и всех программ, которые относятся к офису, а все почему? Потому что на стационарнике НЕ УСТАНОВЛЕН ЭТОТ ГРЕБАНЫЙ ОФИС!!! Ха-ха Все файлы офиса трактуются как application/octet-stream

Соответственно в реестре винды нет маймов (их отправляет браузер, т.е. клиент), которые прописаны в конфигурационном файле Codeigniter для xlsx

PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
  3.  


Но application/octet-stream, есть в других маймах Codeigniter (но толку то, расширение загружаемого файла не соответствует конфигу Ха-ха )

Отсюда решений несколько:
1. Дописать
PHP:
скопировать код в буфер обмена
  1.  
  2. 'xlsx'  =>      array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip', 'application/octet-stream'),
  3.  

(спорно исходя из условий безопасности загружаемых файлов)
2. Установить офис (рекомендовано, но на...й надо Закатив глазки )
3. Вручную внести в реестр винды mime соответствие
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB