Codeigniter多檔案上傳與縮圖實作程式碼

WBOY
發布: 2016-07-25 08:53:08
原創
938 人瀏覽過
  1. class Upload extends Controller {

  2. function go() {
  3. if(isset($ _POST[ 'go'])) {
  4. // 初始化
  5. $config['upload_path'] = 'album/source';
  6. $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';
  7. $config['encrypt_name'] = TRUE;
  8. $config['remove_spaces'] = TRUE;
  9. $config['max_size'] = '0';
  10. $config['max_width'] = '0';
  11. $config['max_height'] = '0';
  12. $this->load->library('upload', $config);

  13. //170*170圖片

  14. $configThumb = array();
  15. $configThumb['image_library'] = 'gd2';
  16. $configThumb['source_image'] = '';
  17. $configThumb ['create_thumb'] = TRUE;
  18. $configThumb['maintain_dratb['maintain_真的; //保留圖片比例
  19. $configThumb['new_image'] = 'album/thumb';
  20. $configThumb['width'] = 170;
  21. $configThumb['height'] = 170;
  22. //600*600圖片
  23. $configLarge = array();
  24. $configLarge['image_library'] = 'gd2';
  25. $configLarge['source_image'] = '';
  26. $ configLarge['create_thumb'] = TRUE;
  27. $configLarge['maintain_ratio'] = TRUE; // 保持圖片比例
  28. $configLarge['new_image'] = 'album/large';
  29. $configLarge['width'] = 600;
  30. $configLarge['height'] = 600;
  31. $configLarge['height'] = 600;
  32. /p>
  33. $this->load->library('image_lib');

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

  35. if($upload === FALSE) continue;
  36. $data = $this->upload->data();//返回上傳檔案的記憶體的所有相關資訊
  37. $uid = $this ->session->userdata('uid');
  38. $uploadedFiles[$i] = $data;
  39. if($data['is_image'] == 1) {

  40. // 初始化170*170
  41. $configThumb['source_image'] = $data['full_path']; //檔案路徑帶檔名
  42. $this->image_lib->initialize($configThumb);
  43. $this->image_lib->resize();
  44. //初始化600*600
  45. $ configLarge['source_image'] = $data['full_path']; //檔案路徑帶檔名
  46. $this->image_lib->initialize($configLarge);
  47. $this->image_lib->resize();
  48. }
  49. //插入圖片資訊到相簿表,插入的檔案名稱為source目錄檔案名稱

  50. $picture = array(
  51. 'filename' => $data['file_name'],
  52. 'albumID' = > $this->uri->segment(4,0),
  53. 'uid' => $this->session->userdata('uid'),
  54. 'dateline' => 時間(),
  55. '描述' => '',
  56. '點擊' => 0
  57. );
  58. $this->load->model('album_model');

  59. $this->album_model->AddPic($picture);
  60. $picture = array();
  61. }
  62. }
  63. /* 轉出*/
  64. $albumID = $this- >uri->segment(4);
  65. $backurl = site_url() . 'photo/editpic/album/' .$albumID;
  66. $this->session->set_flashdata('msg','圖片上傳成功.');
  67. redirect($backurl,'刷新') ;
  68. }
}
複製程式碼

2,瀏覽次數:new_pic.view檔:

  1. gt;


  2. gt ;



>

複製程式碼

type="submit" name="go" value="上傳照片" class="button" />

注意事項: 1,要一次上傳幾個文件,修改表單和控制器中循環部分的參數就好。 2,album\source 是上傳後原圖目錄 large和thumb分別是兩次執行$this->image_lib->resize();後存放縮圖的目錄。 3,縮圖檔名,如需和album\source目錄一致,請新增參數 $config['thumb_marker'] = '';。 4,$picture 這部分數組是保存到資料庫的東西,無需理會。



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!