手机
当前位置:查字典教程网 >编程开发 >php教程 >Codeigniter实现多文件上传并创建多个缩略图
Codeigniter实现多文件上传并创建多个缩略图
摘要:该程序可以实现:1.同时上传5张图片2.同时生成两种尺寸的缩略图3.保存到mysqlcontrollers:upload.php文件:复制代...

该程序可以实现:

1.同时上传5张图片

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

3.保存到mysql

controllers:upload.php文件:

复制代码 代码如下:<?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文件:

复制代码 代码如下:<form method="post" action="<?php echo site_url() ?>photo/upload/go/<?php echo $albumID ?>" enctype="multipart/form-data">

<input type="file" name="image1"/><br />

<input type="file" name="image2"/><br />

<input type="file" name="image3"/><br />

<input type="file" name="image4"/><br />

<input type="file" name="image5"/><br />

<br />

<p><input type="submit" name="go" value="上传照片" /></p>

</form>

此外需要注意:

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

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

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

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

【Codeigniter实现多文件上传并创建多个缩略图】相关文章:

PHP实现分页的一个示例

PHP使用flock实现文件加锁的方法

建立文件交换功能的脚本(三)

php实现粘贴截图并完成上传功能

用PHP实现文件上传

文件上传类

使用sockets:从新闻组中获取文章(三)

文件上传的实现

PHP实现文件安全下载

PHP+shell实现多线程的方法

精品推荐
分类导航