本文实例讲述了Thinkphp+smarty+uploadify实现无刷新上传的方法。分享给大家供大家参考。具体如下:
模板文件代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<!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> |
控制器代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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程序设计有所帮助。