Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Файлы с реквизитами. Загрузка на ПК
 
 автор: kipes   (24.01.2017 в 09:27)   письмо автору
 
 

В чем может быть ошибка, раньше её не было:
У покупателей есть возможность подкреплять файл с реквизитами при оформлении заказа. Файлы загружаются, но перестали скачиваться, серверная ошибка http://prntscr.com/dzkl0m

Ссылка на закачку идет с админки в заказе http://prntscr.com/dzkl6x . Кликнув по ссылке, происходила загрузка любого файла в не зависимости от названия на кириллице или латинице. Сейчас загружаются файлы только на латинице в имени файла.

Самое интересное в том, что в админке названия файлов прописаны например вот так "реквизиты Экопро.doc" (то есть так, как и были загружены пользователем), хотя на самом сервере "Экопро.doc". Подставив в адресную строку название файла такое же как на сервере - не дает результата. Почему обрезаются первые слова в имени файла непонятно.

Разработчик данного функционала говорит что проблема с хостингом.
На хостинге, взяв платную подписку по решению технических вопросов, сообщили что проблем никаких не видят. Проверили логи сервера и сайта ошибок нет.

Кроме того, на сайте есть технические каталоги pdf. Например:

/www/**********.ru/uploads/Manual/Mitsubishi Electric/Руководство по эксплуатации/Руководство по эксплуатации.pdf

все эти файлы загружаются.

В чем причина и кто виноват? Хостинг (firstvds) или разработчик, который сделал не качественный код и в результате после смены хостинга наблюдаются вот такие странности??

Куда копать?

  Ответить  
 
 автор: elenaki   (24.01.2017 в 10:32)   письмо автору
 
   для: kipes   (24.01.2017 в 09:27)
 

Обрезание по пробелу происходит, когда имя поля указано в форме без кавычек.
Попробуйте переименовать файл при загрузке только латинскими буквами и цифрами.
Хостинг код не делает. Все вопросы к разработчику.

  Ответить  
 
 автор: kipes   (24.01.2017 в 10:46)   письмо автору
 
   для: elenaki   (24.01.2017 в 10:32)
 

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

  Ответить  
 
 автор: kipes   (24.01.2017 в 11:01)   письмо автору
 
   для: elenaki   (24.01.2017 в 10:32)
 

В input?

в файле вот так:
<input type="file" name="userfile" value="" id="userfile" style="cursor:pointer">
 <input type="hidden" name="custom_field[111]" value="" id="custom_field_111" class=""  />

  Ответить  
 
 автор: a.xomicheva   (06.12.2018 в 13:02)   письмо автору
 
   для: kipes   (24.01.2017 в 11:01)
 

спасибо

  Ответить  
 
 автор: kipes   (24.01.2017 в 13:06)   письмо автору
 
   для: elenaki   (24.01.2017 в 10:32)
 

На хостинге решили проблему. Спросил в чем была загвоздка.
Ответ:
Установил на сервер локали:
ru_RU.UTF-8
ru_RU.CP1251
ru_RU.KOI8R


Спасибо всем кто откликнулся. Тема закрыта.

  Ответить  
 
 автор: confirm   (24.01.2017 в 13:09)   письмо автору
 
   для: kipes   (24.01.2017 в 09:27)
 

1) Русские имена файлов, а также каталогов да еще с использованием регистра, это плохо. Оригинальное имя файла можно хранить в базе, отдавая его пользователю при скачивании, а вот хранить в таком виде в "русских" папках, это проблемы. Такие именования требуют url-кодирования.

2) Возможные причины проблемы - не производится url-кодирование при операциях; не корректная кодировка указывается при сохранение/считывании в базе; хост использует Russian Apache.

3) Решение единственное и самое верное - переименовать все на латиницу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования