Как запретить специальные символы в имени файла, такие как & quot; () & quot; после загрузки изображения?

Я работаю над своей программой, где пользователь будет загружать изображения в документ / папку. На моей странице есть кнопка изменить изображение, где пользователь может редактировать или добавлять некоторую информацию к изображению.

Это URL для загрузки: SAMPLE/index.php/document

Затем я загрузил sample.jpg // это работает на изменение

Я снова загрузил новое изображение. На этот раз с пространственными персонажами sample_(3)1.jpg // не сработало! Отправленный вами URI содержит запрещенные символы.

Это URL для изменения: SAMPLE/index.php/document/modify_document/sample_(3)1.jpg

Я пытался включить проверку URI и сослаться на это запрещенные персонажи, но проблема в том, что некоторые из моих веб-страниц пострадали. (У меня много страниц на моем веб-сайте)

Я думаю, что лучшим решением для этого может быть уведомление пользователя о том, что загрузка файлов со специальными символами запрещена. Я не знаю, как это сделать в CodeIgniter. Если у вас есть идеи, пожалуйста, не стесняйтесь опубликовать свой ответ. Спасибо!

2

Решение

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

Поэтому обычно я сохраняю файл (в файловой системе) с временным именем, например, $ _FILES [«yourfile»] [«tmp_name»], затем сохраняю это имя файла для редактирования в базе данных вместе с другим поля, в которых хранится «отображаемое имя», отображаемое пользователю, или имя файла, когда пользователь хочет загрузить файл обратно.

Что-то вроде

таблица user_uploaded_pic {id, filepath, displayname}

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]