ci php做多图上传,Codeigniter实现多文件上传并创建多个缩略图

该程序可以实现:

1.同时上传5张图片

2.同时生成两种尺寸的缩略图

3.保存到mysql

controllers:upload.php文件:

class Upload extends Controller {

function go() {

if(isset($_POST['go'])) {

//初始化

$config['upload_path'] = 'album/source';

$config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';

$config['encrypt_name'] = TRUE;

$config['remove_spaces'] = TRUE;

$config['max_size']  = '0';

$config['max_width']  = '0';

$config['max_height']  = '0';

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

//170*170图片

$configThumb = array();

$configThumb['image_library'] = 'gd2';

$configThumb['source_image'] = '';

$configThumb['create_thumb'] = TRUE;

$configThumb['maintain_ratio'] = TRUE; //保持图片比例

$configThumb['new_image'] = 'album/thumb';

$configThumb['width'] = 170;

$configThumb['height'] = 170;

//600*600图片

$configLarge = array();

$configLarge['image_library'] = 'gd2';

$configLarge['source_image'] = '';

$configLarge['create_thumb'] = TRUE;

$configLarge['maintain_ratio'] = TRUE; //保持图片比例

$configLarge['new_image'] = 'album/large';

$configLarge['width'] = 600;

$configLarge['height'] = 600;

$this->load->library('image_lib');

for($i = 1; $i < 6; $i++) {

$upload = $this->upload->do_upload('image'.$i);

if($upload === FALSE) continue;

$data = $this->upload->data();//返回上传文件的所有相关信息的数组

$uid = $this->session->userdata('uid');

$uploadedFiles[$i] = $data;

if($data['is_image'] == 1) {

//初始化170*170

$configThumb['source_image'] = $data['full_path']; //文件路径带文件名

$this->image_lib->initialize($configThumb);

$this->image_lib->resize();

//初始化600*600

$configLarge['source_image'] = $data['full_path']; //文件路径带文件名

$this->image_lib->initialize($configLarge);

$this->image_lib->resize();

}

//插入图片信息到album表,插入的文件名为source目录文件名

$picture = array(

'filename' => $data['file_name'],

'albumID' => $this->uri->segment(4,0),

'uid' => $this->session->userdata('uid'),

'dateline' => time(),

'describe' => '',

'click' => 0

);

$this->load->model('album_model');

$this->album_model->AddPic($picture);

$picture = array();

}

}

/* 转出 */

$albumID = $this->uri->segment(4);

$backurl = site_url() . 'photo/editpic/album/' .$albumID;

$this->session->set_flashdata('msg','图片上传成功.');

redirect($backurl,'refresh');

}

}

views:new_pic.view文件:

此外需要注意:

1.要一次上传几个文件,修改表单和控制器中循环部分的参数就好。

2.album\\source 是上传后原图目录  large和thumb分别是两次执行$this->image_lib->resize();后存放缩略图的目录

3.缩略图文件名如需和album\\source目录一致,请添加参数 $config['thumb_marker'] = '';

4.$picture这部分数组是保存到数据库的东西,可以不用管了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值