用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8804|回复: 5
收起左侧

[库 Library] 自己扩展的CI文件上传类

  [复制链接]
发表于 2010-8-17 16:05:02 | 显示全部楼层 |阅读模式
本帖最后由 xgdd1987 于 2010-8-17 16:07 编辑

好久没来ci社区了,今天遇到问题了又想起来咱社区了,呵呵,看看咱社区的人气一直都是很旺啊。。
今天做一个文件上传的页面,就是那种上传图片的。一开始是做的必须上传图片,后来客户说这个太强制了,应该做成不选择上传图片时也能添
加新信息。我看了看ci手册,上传配置里没有关于是否可以允许上传文件为空的选项,所以我就自己修改了一下ci的上传类。现在我修改的默认
的是不允许上传文件为空,如果想要允许,则这样配置:
PHP复制代码
 
      $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, 下载次数: 311)

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

发表于 2010-8-18 09:49:57 | 显示全部楼层
顶,支持原创!
这个配置很好,否则每次都还要自己判断 $_FILES,很麻烦。
发表于 2011-1-20 15:27:04 | 显示全部楼层
如果不改上传文件名的话是可以,但是要改上传文件名的话还是不行,我测试了,还是需要file一下
发表于 2011-4-2 21:15:13 | 显示全部楼层
学习学习,先下下来看看。
发表于 2012-1-10 01:21:40 | 显示全部楼层
                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);
                }

我是这样写的
发表于 2013-9-6 17:26:56 | 显示全部楼层
{:soso__4960980021297797338_1:}  太好用了

本版积分规则