本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答