@ugodrus

Почему не отправляется POST с загрузкой файлов с кириллическими именами?

Люди который с таким сталкивались.. подскажите как побороть.

Проблема в следующем: есть CLI скрипт общающийся с неким апи через lib_curl и отсылающий документы из указанных директорий. Всё было нормально и не вызывало проблем пока файлы были с названиями вида /[a-z0-9_-]+/i. Но обнаружилась проблема с файлами в названии которых есть кириллица. Сам PHP молчит. Ни ошибок ни ворнингов. Однако я так подозреваю curl не может прицепить файлы с такими именами. curl_error() ругается на первый же попавшийся файл с кириллическим именем в запросе. Есть конечно вариант делать временные файлы на основе существующих но он сомнителен хотя бы потому что эти запросы собираются в multicurl от 2 до 6 запросов в пачке и до 8 файлов на запрос. Получится слишком много манипуляций с диском а это не желательно.

Очень жду помощи.
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ugodrus Автор вопроса
Нашел кое-что на тему curl can't open Unicode filenames in Windows.

Судя по написанному ( пробежался мельком ) проблема такая есть и разработчики в курсе но решение отложено.
Возможно когда-нибудь исправят. А пока что реализовал отправку файлов через символическую ссылку: создаю символическую ссылку ( из оперы uniqid() ) на файл с кириллицей в названии, а после успешной отправки её подтираю. Всё-таки лучше чем распихивать дубликаты весом до 60мб по диску.

Проблема не зависит от ОС. На Linux тот же эффект. Проблема возникает при сборке запроса перед его отправкой. Старый вариант подключения файлов через "@filepath" тоже не подгружает данные, но хотя бы пытается отправить запрос с указанием передаваемых файлов, но пустых.

Надеюсь на то, что у кого-нибудь найдется более простое и элегантное решение проблемы.
А пока пусть мой вопрос с моим же комментарием поможет кому-нибудь не наступить на те же грабли.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы