本文實例講述了Thinkphp+smarty+uploadify實現無刷新上傳的方法。分享給大家供大家參考。具體如下:
模板文件代碼:
<!DOCTYPE html> <html lang="cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="<{$smarty.const.PUBLIC_PATH}>/Uploadify/uploadify.css" rel="stylesheet" type="text/css" /> <script src="<{$smarty.const.PUBLIC_PATH}>/Uploadify/jquery.js" type="text/javascript"></script> <script src="<{$smarty.const.PUBLIC_PATH}>/Uploadify/jquery.uploadify.min.js" type="text/javascript"></script> </head> <script type="text/javascript"> $(function() { $("#file_upload").uploadify({ //指定swf文件 'swf': '<{$smarty.const.PUBLIC_PATH}>/Uploadify/uploadify.swf', //後台處理的頁面 'uploader': "<{U('home/Login/Uploads','',false)}>", //按鈕顯示的文字 'buttonText': '上傳圖片', //顯示的高度和寬度 "height" : 30, 'fileTypeDesc': 'Image Files', //允許上傳的文件後綴 'fileTypeExts': '*.gif; *.jpg; *.png', //發送給後台的其他參數通過formData指定 //'formData': { 'someKey': 'someValue', 'someOtherKey': 1 }, "method" : 'post',//方法,服務端可以用$_POST數組獲取數據 'removeTimeout' : 1, "onUploadSuccess" : uploadPicture }); //可以根據自己的要求來做相應處理 function uploadPicture(file, data){ var data = eval('(' + data + ')'); if(data.errorcode){ alert(data.errormsg); } else { alert(data.errormsg); } } }); </script> <body> <input type="file" name="file_upload" id="file_upload" /> </body> </html>
控制器代碼:
public function uploads(){ $arr = array( "errorcode"=>"1","errormsg"=>"上傳成功!"); $model = M('applicant'); if (!empty($_FILES)) { //圖片上傳設置 $config = array( 'maxSize' => 1000000, 'rootPath' => 'Public', 'savePath' => '/Uploads/', 'saveName' => array('uniqid',''), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => false, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config);// 實例化上傳類 $info = $upload->upload(); if($info){ $arr['errorcode'] = "0"; } else { $arr["errorcode"] = "1"; $arr["errormsg"] = $upload->getError(); } /* 返回JSON數據 */ $this->ajaxReturn($arr); } }
希望本文所述對大家的php程序設計有所幫助。