欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

[库 Library] 自己扩展的CI文件上传类 上传文件重命名 有大用

本帖最后由 xgdd1987 于 2010-8-17 16:07 编辑

好久没来ci社区了,今天遇到问题了又想起来咱社区了,呵呵,看看咱社区的人气一直都是很旺啊。。
今天做一个文件上传的页面,就是那种上传图片的。一开始是做的必须上传图片,后来客户说这个太强制了,应该做成不选择上传图片时也能添
加新信息。我看了看ci手册,上传配置里没有关于是否可以允许上传文件为空的选项,所以我就自己修改了一下ci的上传类。现在我修改的默认
的是不允许上传文件为空,如果想要允许,则这样配置:
PHP复制代码
 $config['file_name'] = date('YmdHis').rand(0,1000);
      $config['upload_path'] = './uploadfile/';
      $config['allowed_types'] = 'gif|jpg|png';
      $config['max_size'] = '1000';
      $config['encrypt_name']=TRUE;
      $config['allowed_no_file']=TRUE;//这个配置选项就是我扩展的,意思是允许不选择上传文件,这样你用$name=$upload_data['file_name']得到是一个空字符串。程序默认的是$config['allowed_no_file']=FALSE;
      $this->load->library('upload', $config);
复制代码


这样配置就可以了,其他的一切正常。还有一个地方,就是上传文件重命名的地方,我感觉原来的重命名的文件名太长了,所以我也修改了下,代买在364行和365行,364行是原来ci的,我注释掉了,365行是我新添加的,各位看看代码就知道我是怎么重命名的了。
PHP复制代码
 
//下面这个方法我没有试过   
// $filename = md5(uniqid(mt_rand())).$this->file_ext;
   $filename = date('YmdHis').rand(0,1000).$this->file_ext; //这是我新添加的
 
复制代码


呵呵 希望对大家有所帮助,我扩展的文件在附件里,去下载就可以了。因为改动不是很大,直接覆盖ci的原文件就行。
 Upload.rar (5.41 KB, 下载次数: 288)
顶,支持原创!
这个配置很好,否则每次都还要自己判断 $_FILES,很麻烦。



如果不改上传文件名的话是可以,但是要改上传文件名的话还是不行,我测试了,还是需要file一下


        if (!$this->upload->do_upload($field_name))
                {
                    //$error = array('error' => $this->upload->display_errors());
                    $data['upload_data'] = "";
                    //echo $error;
                }
                else
                {
                    $data['upload_data'] = $this->upload->data();
                    //echo $data['upload_data']['file_name'];
                    //$this->load->view('upload_success', $data);
                }

我是这样写的
来自  http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=6747
附件大小
文件 Upload.rar5.41 KB
普通分类: