自己扩展的CI文件上传类
本帖最后由 xgdd1987 于 2010-8-17 16:07 编辑好久没来ci社区了,今天遇到问题了又想起来咱社区了,呵呵,看看咱社区的人气一直都是很旺啊。。
今天做一个文件上传的页面,就是那种上传图片的。一开始是做的必须上传图片,后来客户说这个太强制了,应该做成不选择上传图片时也能添
加新信息。我看了看ci手册,上传配置里没有关于是否可以允许上传文件为空的选项,所以我就自己修改了一下ci的上传类。现在我修改的默认
的是不允许上传文件为空,如果想要允许,则这样配置:
$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行是我新添加的,各位看看代码就知道我是怎么重命名的了。
// $filename = md5(uniqid(mt_rand())).$this->file_ext;
$filename = date('YmdHis').rand(0,1000).$this->file_ext; //这是我新添加的
呵呵 希望对大家有所帮助,我扩展的文件在附件里,去下载就可以了。因为改动不是很大,直接覆盖ci的原文件就行。
顶,支持原创!
这个配置很好,否则每次都还要自己判断 $_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);
}
我是这样写的 {:soso__4960980021297797338_1:}太好用了
页:
[1]