Codeigniter Переименовать файл при загрузке

Поскольку вы используете 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;
}

Fiddle

29
задан Dilukshan Mahendra 16 February 2014 в 13:30
поделиться

8 ответов

Вы можете зашифровать имя файла с помощью собственной опции CI:

$config['encrypt_name'] = TRUE;

ИЛИ

Вы можете сделать это с помощью собственного кода:

$new_name = time().

Вы можете зашифровать имя файла с помощью собственной опции CI:

[110]

ИЛИ

Вы можете сделать это с помощью собственного кода:

[111]FILES["userfiles"]['name']; $config['file_name'] = $new_name;
78
ответ дан Kumar V 16 February 2014 в 13:30
поделиться

По некоторым причинам последовательные вызовы функции 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);
7
ответ дан Carmela 16 February 2014 в 13:30
поделиться

Для того, что вы точно ищете, это сработало для меня:

$path = 

Для того, что вы точно ищете, это сработало для меня:

[110]FILES['image']['name']; $newName = "<Whatever name>".".".pathinfo($path, PATHINFO_EXTENSION);
2
ответ дан Heshan Rajapaksha 16 February 2014 в 13:30
поделиться

когда вы используете функцию 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;
                    }
                }

?>
1
ответ дан pruthwiraj.kadam 16 February 2014 в 13:30
поделиться
$config['file_name'] = $new_name;

Просто добавьте его в соответствие с кодами конфигурации.

0
ответ дан johnnyRose 16 February 2014 в 13:30
поделиться

Это должно быть после загрузки.

Обработайте имя файла, которое вы хотите здесь:

$a=$this->upload->data();         
rename($a['full_path'],$a['file_path'].'file_name_you_want');
0
ответ дан Artem Mostyaev 16 February 2014 в 13:30
поделиться

Попробуйте:

$config['file_name'] = "yourCustomFileName";
0
ответ дан Rafiqul Islam 16 February 2014 в 13:30
поделиться
        /* 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);
0
ответ дан Mohit Sharma 16 February 2014 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: