Я успешно реализовал в своем приложении некоторые функции управления файлами Laravel: загрузка, загрузка, перемещение.По крайней мере, я бы сказал, что это успешно, потому что он работает нормально, пока не узнаю, что я получаю проблем при хранении файлов с некоторыми специальными символами в их имени файла / пути .
В моем случае я отметил это с помощью символа двоеточия.Есть другие персонажи, которые могут вызвать это.Я могу успешно зарегистрировать форму с помощью ввода файла: я имею в виду без этих символов, я могу без проблем загружать, загружать и редактировать.Но когда я получаю двоеточие, например, в имени файла, поле ввода, которое используется для пути: ($filename = $request->input('inputFileName') .'.'. $file->getClientOriginalExtension();
$path = $file->storeAs('folder',$filename);
), я получаю проблему.
Во-первых, имя файла больше не записывается должным образом: из двоеточия оставшееся имя файла не регистрируется.Например, предположим, что ввод для имени файла a:b
;в моей папке я зарегистрирую a
вместо и без расширения.Нет необходимости говорить, что я получаю ошибку File not found at path
при желании скачать.Я тоже получаю эту ошибку, когда хочу изменить имя файла с двоеточием на другое.Еще одна вещь, которую я замечаю при редактировании, это то, что я не могу переименовать файл без этих символов (здесь - двоеточие), чтобы он был вместе с ним.При этом я получаю php: Warning: rename The filename, directory name, or volume label syntax is incorrect. (code: 123)
.Я искал это и нашел этот .Похоже, это связано с файловой системой ОС.Я работаю на ОС Windows 10 и использую Laravel 5.8.
Кто-нибудь из вас уже сталкивался с этой проблемой, и как вы справились с этим?У Laravel есть что-то, чтобы справиться с этим? .. Любая помощь или предложение будут очень признательны