Поскольку вы используете bootstrap
, вы можете использовать компонент input-groups
и переопределить некоторые из стилей bootstrap
:
HTML
lbs
CSS
.input-group {
top:40px;
width:auto;
}
.unity-input .form-control {
border-right:0!important;
}
.unity-input .input-group-addon {
background:white!important;
border-left:none!important;
font-weight:bold;
color:#333;
}
Вы можете зашифровать имя файла с помощью собственной опции CI:
$config['encrypt_name'] = TRUE;
ИЛИ
Вы можете сделать это с помощью собственного кода:
$new_name = time(). Вы можете зашифровать имя файла с помощью собственной опции CI:
[110] ИЛИ
Вы можете сделать это с помощью собственного кода:
[111]FILES["userfiles"]['name'];
$config['file_name'] = $new_name;
По некоторым причинам последовательные вызовы функции do_upload не работают. Он придерживается первого имени файла, установленного первым вызовом функции
$small_photo_url = $this->upload_photo('picture_small', $this->next_id.'_small ');
$medium_photo_url = $this->upload_photo('picture_medium', $this->next_id.'_medium');
$large_photo_url = $this->upload_photo('picture_large', $this->next_id.'_large ');
Все имена файлов будут «00001_small», «00001_small1», «00001_small2» при следующих конфигурациях
function upload_photo($field_name, $filename)
{
$config['upload_path'] = 'Public/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1024';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['file_name'] = $filename;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())...
Я думаю, это потому, что эта строка не работает во второй раз, когда вы ее называете. Он не устанавливает конфигурации снова
$this->load->library('upload', $config);
================================= ============================================== Решение проблемы, возникающей при последовательных вызовах функции do_upload :
// re-initialize upload library
$this->upload->initialize($config);
Для того, что вы точно ищете, это сработало для меня:
$path = Для того, что вы точно ищете, это сработало для меня:
[110]FILES['image']['name'];
$newName = "<Whatever name>".".".pathinfo($path, PATHINFO_EXTENSION);
когда вы используете функцию do_upload (), ее имя переименовывается, если оно уже существует, и загружает файл
System-> library-> Upload.php
функция по умолчанию для do_upload () возвращает true или false replace
return $ this-> upload_path. $ this-> file_name;
и в другом файле
<input type='file' name='userfile'/>
<?php
$upload_file_name = $this->upload->do_upload('userfile');
$finalname;
if (!$upload_file_name) {
$finalname = 'default.png';
} else {
$split_data_upload_file_name = explode("/", $upload_file_name);
foreach ($split_data_upload_file_name as $i => $value) {
$finalname = $value;
}
}
?>
$config['file_name'] = $new_name;
Просто добавьте его в соответствие с кодами конфигурации.
Это должно быть после загрузки.
Обработайте имя файла, которое вы хотите здесь:
$a=$this->upload->data();
rename($a['full_path'],$a['file_path'].'file_name_you_want');
Попробуйте:
$config['file_name'] = "yourCustomFileName";
/* Conf */
$new_name = time().[110]FILES["userfiles"]['name'];
$config['file_name'] = $new_name;
$config['upload_path'] = './upload/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '';
$config['max_width'] = '';
$config['max_height'] = '';
$config['file_ext_tolower'] = TRUE;
/* Load the upload library */
$this->load->library('upload', $config);