Code Upload Igniter File Upload Class - Как изменить сохраненное имя файла? - PullRequest
1 голос
/ 27 ноября 2011

Я пишу приложение с использованием платформы CodeIgniter и использую класс CI File Uploading для загрузки файлов изображений на сервер из веб-формы.

Файлы загружаются нормально, но я бы хотел сохранить их под другим уникальным именем на сервере. Я хотел бы сказать классу «Выгрузка файлов» для сохранения файлов на сервере, используя разные уникальные имена файлов для каждого файла, но я не смог понять, как это сделать.

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

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

Ответы [ 4 ]

5 голосов
/ 05 июля 2012

Если вы хотите изменить имя загружаемого файла, попробуйте следующее:

$newFileName = $_FILES['userfile']['name'];
// You can setfilename in config for upload
$config['file_name'] = $new_name;
5 голосов
/ 27 ноября 2011

Вы можете установить переменные конфигурации для достижения обеих целей, о которых вы просили.Следующие переменные конфигурации можно найти на странице справки

Настройка имени файла для загруженного вами файла

имя_файла Нет Желаемый файлname

Если установлено, CodeIgniter будет переименовывать загруженный файл с этим именем.Расширение, указанное в имени файла, также должно быть разрешенным типом файла.

Обеспечение уникальности имени файла

перезаписать FALSE TRUE / FALSE (логическое значение)

Если установлено значение true, если файл с тем же именем, что и загружаемый файл, существует, он будет перезаписан.Если установлено значение false, число будет добавлено к имени файла, если существует другое с таким же именем.

И вы можете установить эти переменные конфигурации следующим образом

$config['file_name'] = 'myfile';
$config['overwrite'] = false;

$this->load->library('upload', $config);

// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
$this->upload->initialize($config);
1 голос
/ 27 ноября 2011

Вы можете установить свое имя файла:

$newFileName = $_FILES['some_field']['name'];
$fileExt = array_pop(explode(".", $newFileName));
$filename = md5(time()).".".$fileExt;

//set filename in config for upload
$config['file_name'] = $filename;

Надеюсь, это поможет

0 голосов
/ 28 ноября 2017

Если вы хотите изменить имя загружаемого файла :

$fname = "Set File Name What You Want";


$config['file_name'] = $fname;
$config['overwrite'] = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...