1. 程式人生 > >TP3.2:上傳預覽+縮圖+水印例項

TP3.2:上傳預覽+縮圖+水印例項

uploadify上傳預覽+縮圖+水印例項
首先感謝各位大神網友的分享,我只是改改程式碼,讓其更符合自己的業務邏輯
圖片上傳+縮圖+水印處理程式碼:
  1. //檔案上傳
  2. Publicfunction _upload( $thumb =false, $thumbWidth ='', $thumbHeight =''){
  3.         $upload =new \Think\Upload();// 例項化上傳類
  4.         $upload->maxSize =3145728;// 設定附件上傳大小
  5.         $upload->exts =  array('jpg','gif','png','jpeg'
    );// 設定附件上傳型別
  6.         $upload->savePath ='/'. CONTROLLER_NAME .'/';// 設定附件上傳目錄
  7.         $info = $upload->upload();
  8. if(!$info){
  9. return array('status'=>0,'info'=> $upload->getError());
  10. }else{
  11. if( $thumb ){//生成縮圖
  12.                 $image =new \Think\Image();
  13. foreach($info as $file){
  14.                     $thumb_file 
    ='./Uploads/'. $file['savepath']. $file['savename'];
  15.                     $save_path ='./Uploads/'.$file['savepath'].'mini_'. $file['savename'];
  16.                     $image->open( $thumb_file )->text('德興房產','./data/1.otf',30,'#A7AAA4',\Think\Image::IMAGE_WATER_SOUTHWEST)->save( $thumb_file );
  17.                     $image
    ->open( $thumb_file )->text('德興房產','./data/1.otf',24,'#A7AAA4',\Think\Image::IMAGE_WATER_SOUTHWEST)->thumb( $thumbWidth, $thumbHeight )->save( $save_path );
  18. return array(
  19. 'status'=>1,
  20. 'savepath'=> $file['savepath'],
  21. 'savename'=> $file['savename'],
  22. 'pic_path'=> $file['savepath']. $file['savename'],
  23. 'mini_pic'=> $file['savepath'].'mini_'.$file['savename']
  24. );
  25. }
  26. }else{
  27. foreach($info as $file){
  28. return array(
  29. 'status'=>1,
  30. 'savepath'=> $file['savepath'],
  31. 'savename'=> $file['savename'],
  32. 'pic_path'=> $file['savepath'].$file['savename']
  33. );
  34. }
  35. }
  36. }
  37. }
複製程式碼 前端主要程式碼(參考http://www.thinkphp.cn/code/151.html):
  1. <divclass="tab-pane"id="tab3">
  2. <divclass="row">
  3. <divclass="col-md-12">
  4. <divclass="tab-pane">
  5. <divclass="form-group">
  6. <inputtype="file"id="upload"class="form-control input-medium"/>
  7. </div>
  8. <divstyle="width:100%;float:left;padding:10px20px20px; background-color:#ccc">
  9. <p>
  10. <ulclass="imagelist"id="image_result"></ul>
  11. </p>
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. </div><!-- END #TAB3 -->
  17. <divclass="margin-top-10">
  18. <buttontype="submit"class="btn green ajax-post">確 認</button>
  19. <ahref="javascript:"onclick="javascript:history.back(-1);returnfalse;"class="btn default">返 回</a>
  20. </div>
  21. </div>
  22. </div>
  23. </form>
  24. </div>
  25. </div>
  26. </block>
  27. <blockname="foot">
  28. <linkhref="__PUBLIC__/assets/plugins/uploadify/uploadify.css"rel="stylesheet"type="text/css"/>
  29. <linkhref="__PUBLIC__/assets/plugins/uniform/css/uniform.default.css"rel="stylesheet"type="text/css"/>
  30. <scriptsrc="__PUBLIC__/assets/plugins/uniform/jquery.uniform.min.js"type="text/javascript"></script>
  31. <scriptsrc="__PUBLIC__/assets/plugins/uploadify/jquery.uploadify.min.js"type="text/javascript"></script>
  32. <scripttype="text/javascript">
  33.     $(function(){
  34. var sid ="{:session_id()}";
  35.         $('#upload').uploadify({
  36. 'swf':'__PUBLIC__/assets/plugins/uploadify/uploadify.swf',
  37. 'buttonText':'選擇圖片',
  38. 'formData':{'session_id':sid},
  39. 'uploader':"{:U('uploadPic')}",
  40. 'fileTypeDesc':'Image File',
  41. 'fileTypeExts':'*.jpg; *.jpeg; *.gif; *.png',
  42. 'auto':true,
  43. 'removeCompleted':false,
  44.             onUploadSuccess:function(file, data, response){
  45.                 $('#progress').hide();
  46. var result = $.parseJSON(data);
  47. //錯誤處理。。。
  48. if(result.status ==0){
  49.                     alert(result.info);
  50. returnfalse;
  51. }
  52. //上傳成功
  53. var id =Math.random().toString();
  54.                 id = id.replace('.','_');//生成唯一標示
  55. var html ='<li class="imageitem" id="'+id+'">';
  56.                     html+='<input type="hidden" name="file[]" value="'+result.pic_path+'">';//隱藏域,是為了把圖片地址入庫。。
  57.                     html+='<input type="hidden" name="minifile[]" value="'+result.mini_pic+'">';//隱藏域,是為了把圖片地址入庫。。
  58.                     html+='<img height="160" width="160" src="__ROOT__/Uploads/'+result.pic_path+'" />';
  59.                     html+='<span class="txt">';
  60.                     html+='<a title="刪除" href=javascript:remove("'+result.pic_path+'","'+id+'");><img src="__PUBLIC__/assets/plugins/uploadify/remove.png" /></a>';
  61.                     html+='<a title="設為封面" href=javascript:tocover("'+result.pic_path+'");><img src="__PUBLIC__/assets/plugins/uploadify/right.png" /></a>';
  62.                     html+='</span>';
  63.                     html+='<em><input class="form-control" value="'+file.name+'"></em>';
  64.                     html+='</li>';
  65.                 $('#image_result').append(html);
  66. },
  67.             onUploadStart:function(){
  68.                 $('#progress').text('正在上傳...');//使用者等待提示。
  69. },
  70.             onInit:function(){
  71.                 $("#upload-queue").hide();//隱藏上傳佇列                
  72. }
  73. });
  74. });
  75. function remove(file,id){
  76.         alert('刪除成功!'+"\r\n"+file);
  77.         $('#'+id).remove();
  78. }
  79. function tocover(file){
  80.         alert('設為封面成功'+"\r\n"+file);
  81. }
  82. function check(){
  83. if($('input[name="title"]').val()==""){
  84.             toastr['error']('標題不能為空!');
  85. returnfalse;
  86. }
  87. }
  88. </script>
  89. </block>
複製程式碼