加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP Codeigniter上传类,重命名具有特定架构的文件

发布时间:2020-12-13 22:04:30 所属栏目:PHP教程 来源:网络整理
导读:我在使用Codeigniter时遇到了麻烦,并且在上传过程中从要提供的上传库中重命名文件.现在在任何人说出来之前,我并不是在寻找“加密”的文件名. 我的问题是在上传图片时,你可以处理好一些类型.那么如何使用file_name配置选项将文件名更改为特定模式(我已经将模
我在使用Codeigniter时遇到了麻烦,并且在上传过程中从要提供的上传库中重命名文件.现在在任何人说出来之前,我并不是在寻找“加密”的文件名.

我的问题是在上传图片时,你可以处理好一些类型.那么如何使用file_name配置选项将文件名更改为特定模式(我已经将模式部分启动并运行).但保持相同的文件类型?

现在我正在尝试

$upload_config [‘file_name’] = $generated_filename_from_schema

唯一的问题是$generated_filename_from_schema没有文件扩展名,并且将文件扩展名保留在等式CI之外似乎完全忽略它并且只是获取文件并且append_1,_2,_3如果文件具有相同的名称则上升,否则它只是保留了名称.

现在我必须将$config传递给CI,以便上传文件,但是如何在上传之前确定我正在使用哪种文件,这样我就可以使用我的名字生成模式.

*编辑*

$upload_config['upload_path'] = realpath(APPPATH.'../images/');
    $upload_config['allowed_types'] = 'gif|jpg|png';
    $upload_config['max_size']  = 0;
    $upload_config['max_width'] = 0;
    $upload_config['max_height'] = 0;
    $upload_config['remove_spaces'] = true;

    $upload_config['file_name'] = $this->genfunc->genFileName($uid);

    if($this->input->post('uploads'))
    {

        $this->load->library('upload');
        $this->upload->initialize($upload_config);

        if (!$this->upload->do_upload())
        {
            //echo 'error';
            echo $config['upload_path'];
            $this->data['errors'] = $this->upload->display_errors();
        }
        else
        {
            //echo 'uploaded';
            $this->data['upload_data'] = $this->upload->data();
        }
    }

解决方法

您可以使用$_FILES数组来获取文件的原始名称.

解压缩原始文件的扩展名.然后,附加到新文件名.

请尝试以下方式

$ext = end(explode(".",$_FILES[$input_file_field_name]['name']));
$upload_config['file_name'] = $this->genfunc->genFileName($uid).'.'.$ext;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读