官網demo連接:http://www.uploadify.com/demos/
html:javascript
<div class="row cl"> <label class="form-label col-3"><span class="c-red">*</span>圖片:</label> <div class="formControls col-5"> <input id="file_upload" name="file_upload" type="file" multiple="true"> <div class="preview"> <ul id="previewImgs"></ul> </div> <div class="col-4"> </div> </div> </div>
須要引入的js、css:php
<link type="text/css" rel="stylesheet" href="/public/uploadify/uploadify.css"> <script type="text/javascript" src="/public/uploadify/jquery-1.8.2.min.js"></script> <script type="text/javascript" src="/public/uploadify/jquery.uploadify.min.js"></script>
JS代碼處理:css
<script type="text/javascript"> $(function() { $('#file_upload').uploadify({ 'formData': { '<?php echo session_name();?>': '<?php echo session_id();?>' }, 'uploader' : '{:U("uploads")}'+ "?session_id=<?php echo session_id(); ?>", 'swf' : '__PUBLIC__/admin/uploadify/uploadify.swf', 'auto' : true, //是否自動開始上傳 'debug' : false,// 是否開啓瀏覽器調試 'buttonText' : '請選擇圖片', // 上傳按鈕文字 'fileTypeExts' :'*.jpg;*.gif;*.bmp;*.png;*.jpeg', //容許的圖片類型 'fileSizeLimit' : '2MB', // 容許的單張圖片的自大值 'multi' : false, //是否容許多張圖片一塊兒上傳 'uploadLimit' :6, //容許上傳數量 'successTimeout' : 10, //等待服務器響應時間 'removeTimeout' : 0.2, //成功顯示時間 'onFallback':function(){ alert("您未安裝FLASH控件,沒法上傳圖片!請安裝FLASH控件後再試。"); }, 'onUploadSuccess' : function(file,data,response){ //alert(data); data = $.parseJSON(data); var Image = "<div style='display:inline-block'><img src='" + data.thumbpath + "' class='img' style='margin-top:10px;width:150px;height:150px;position: relative;'/>\ <input type='hidden' name='image[]' id='image' value='" + data.imgpath + "' />\ <a class='del' onclick=goDel(this,'"+data.thumbpath+"')>刪除</a></div>"; if($("a[class=del]").length>=5){ alert("暫不支持5條以上!"); }else{ $("#previewImgs").append(Image); } } }); }); // ajax 刪除預覽列表中的一張圖片 function goDel(objdom,src){ $(objdom).parent().remove(); return false; } </script>
php後臺處理圖片返回JSON數據:html
public function uploads (){ $upload = new \Think\Upload(); $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); $upload->rootPath = './Uploads/'; $upload->savePath = '/image/commodity/'; if (!is_dir($upload->savePath)) { mkdir($upload->savePath,0777,TRUE); } $info = $upload->upload(); if(!$info) { echo json_encode($upload->getError()); }else{ // 上傳成功 $info['Filedata']['savepath'] = str_replace('image', 'Uploads/image', $info['Filedata']['savepath']); $path = $info['Filedata']['savepath'] . $info['Filedata']['savename']; $image = new \Think\Image(); $image->open('.'.$path); $thumbpath = '.'.$info['Filedata']['savepath'] . $info['Filedata']['savename']; //$image->thumb(148, 84)->save($thumbpath); $path = ltrim($path,'.'); $thumbpath = ltrim($thumbpath,'.'); $data = array( 'imgpath' =>$path, 'thumbpath' => $thumbpath ); echo json_encode($data); } }
注意 : 上傳圖片時session丟失, 只須要修改thinkphp/conf/convention.php中,將VAR_SESSION_ID前面的註釋去掉,而後在客戶端這樣配置下:java
'uploader' : '{:U("uploads")}'+ "?session_id=<?php echo session_id(); ?>",
便可.
jquery
參考連接: http://m.blog.csdn.net/qq_29845761/article/details/49803427ajax