Загрузка или перемещение файла Laravel с помощью специальных символов - PullRequest
0 голосов
/ 19 сентября 2019

Я успешно реализовал в своем приложении некоторые функции управления файлами 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 есть что-то, чтобы справиться с этим? .. Любая помощь или предложение будут очень признательны

1 Ответ

2 голосов
/ 19 сентября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...