重命名多个文件上传codeigniter

时间:2016-09-22 13:55:45

标签: php codeigniter

我想在上传过程中重命名所有文件。我一次上传3个文件。我的前端代码是

<form>
<input type="file" class="form-control" name="photo_1">
<input type="file" class="form-control" name="pan_1">
<input type="file" class="form-control" name="add_1">
</form>

我在控制器中的代码如下

function upload(){
    $this->upload_file('photo_1');
     $this->upload_file('pan_1');
     $this->upload_file('add_1');
}
function upload_file($field_name)
    {

        //$ext = substr( strrchr($_FILES[$field_name]['name'], '.'), 1);
        //$new_name = $types.'_'.$numb.'_dev_.'.$ext;
        $config['file_name']            = $_FILES[$field_name]['name'];
        $config['upload_path']          = './uploads/';
        $config['allowed_types']        = 'jpeg|jpg|png';
       // $config['max_size']             = 100;

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

        if ( ! $this->upload->do_upload($field_name))
        {
            return array('error' => $this->upload->display_errors());

        }
        else
        {
            $data = array('upload_data' => $this->upload->data());

        }
    }

但是我&#39;使用增量为每个文件获取相同的名称。 喜欢photo_1,photo_11,photo_12 。我想要像 photo_sometext_1

这样的文件名

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

问题出在$config['file_name'] = $_FILES[$field_name]['name'];。您需要传递所需的文件名。

OR

好方法是为每个文件创建encrypt_name。这样,codeigniter将为上传的每个文件创建随机名称。

请参阅此https://www.codeigniter.com/userguide3/libraries/file_uploading.html#preferences文档,了解可用选项。

答案 1 :(得分:0)

$config['file_name'] = "sometext".$_FILES[$field_name]['name'].;

如果要完全重命名,则需要捕获扩展并将其附加到您要提供的名称。

看起来像

$config['file_name'] =" some text".$extension

$extension是您的文件扩展名。

答案 2 :(得分:0)

我在

下方的控制器中缺少跟随线
$this->load->library('upload', $config);
    $this->upload->initialize($config);
相关问题