源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Codeigniter实现多文件上传并创建多个缩略图

  • 时间:2021-01-15 12:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Codeigniter实现多文件上传并创建多个缩略图
该程序可以实现: 1.同时上传5张图片 2.同时生成两种尺寸的缩略图 3.保存到mysql [b]controllers:upload.php文件:[/b]
[u]复制代码[/u] 代码如下:
<?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');   } }
[b]views:new_pic.view文件:[/b]
[u]复制代码[/u] 代码如下:
<form method="post" action="<?php echo site_url() ?>photo/upload/go/<?php echo $albumID ?>" enctype="multipart/form-data">   <input type="file" name="image1" class="files"/><br />   <input type="file" name="image2" class="files"/><br />   <input type="file" name="image3" class="files"/><br />   <input type="file" name="image4" class="files"/><br />   <input type="file" name="image5" class="files"/><br />   <br />   <p><input type="submit" name="go" value="上传照片" class="button" /></p> </form>
[b]此外需要注意:[/b] 1.要一次上传几个文件,修改表单和控制器中循环部分的参数就好。 2.album\\source 是上传后原图目录  large和thumb分别是两次执行$this->image_lib->resize();后存放缩略图的目录 3.缩略图文件名如需和album\\source目录一致,请添加参数 $config['thumb_marker'] = ''; 4.$picture这部分数组是保存到数据库的东西,可以不用管了。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部