Thinkphp+smarty+uploadify实现无刷新上传
本文实例讲述了Thinkphp+smarty+uploadify实现无刷新上传的方法。分享给大家供大家参考。具体如下:
模板文件代码:
<!DOCTYPEhtml> <htmllang="cn"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <linkhref="<{$smarty.const.PUBLIC_PATH}>/Uploadify/uploadify.css"rel="stylesheet"type="text/css"/> <scriptsrc="<{$smarty.const.PUBLIC_PATH}>/Uploadify/jquery.js"type="text/javascript"></script> <scriptsrc="<{$smarty.const.PUBLIC_PATH}>/Uploadify/jquery.uploadify.min.js"type="text/javascript"></script> </head> <scripttype="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':'ImageFiles', //允许上传的文件后缀 'fileTypeExts':'*.gif;*.jpg;*.png', //发送给后台的其他参数通过formData指定 //'formData':{'someKey':'someValue','someOtherKey':1}, "method":'post',//方法,服务端可以用$_POST数组获取数据 'removeTimeout':1, "onUploadSuccess":uploadPicture }); //可以根据自己的要求来做相应处理 functionuploadPicture(file,data){ vardata=eval('('+data+')'); if(data.errorcode){ alert(data.errormsg); }else{ alert(data.errormsg); } } }); </script> <body> <inputtype="file"name="file_upload"id="file_upload"/> </body> </html>
控制器代码:
publicfunctionuploads(){ $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程序设计有所帮助。