php教程

超轻量级php框架startmvc

layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例

更新时间:2020-03-27 20:08:19 作者:startmvc
本文实例讲述了layui框架实现文件上传及TP3.2.3对上传文件进行后台处理操作。分享给大家供

本文实例讲述了layui框架实现文件上传及TP3.2.3对上传文件进行后台处理操作。分享给大家供大家参考,具体如下:

layui框架是1.0.9版本。。

首先html页面代码如下:


<div class="layui-form-item" id="upload_file">
 <div class="layui-input-block" style="width: 300px;">
 <input type="hidden" id="img_url1" name="HeadImageUrl" value=""/>
 <div class="layui-upload-drag" id="uploadpic1" lay-verify="uploadpic1">
 <div class="layui-col-xs12 layui-col-md12">
 <img class="layui-upload-img" id="demo1" >
 </div>
 <div class="button-hide">
 <input type="file" name="banner_file_upload" id="banner_file_upload" class="layui-uplaod-file" lay-type="file">
 </div>
 </div>
 </div>
</div>

js代码如下:


<script type="text/javascript" th:inline="javascript">
 layui.use('upload', function (){
 var upload = layui.upload;
 var url="__PUBLIC__";
 upload({
 elem: '#banner_file_upload',
 url: "/index.php/Admin/Product/upload",
 method: 'post',
 before: function(obj){
 console.log('文件上传中');
 layer.load();
 },
 success: function (msg) {
 console.log(msg);
 if(msg.msg=="success"){
 layer.closeAll('loading');
 layer.msg("上传成功");
 $("#img_url1").attr("value", msg.src);
 }else if(msg.msg=="error"){
 layer.closeAll('loading');
 layer.msg(msg.code);
 }
 },
 error:function (data) {
 layer.msg("上传失败");
 console.log(data);
 }
 });
 });
</script>

接下来的php后台接值的方法:


#上传文件方法
public function upload(){
 $res=array(
 'code'=>1,
 'msg'=>'no sorry',
 'data'=>array(
 'src'=>'',
 )
 );
 #图片存放路径
 $directory = C('UPLOAD_PATH')."/Public/docment/";
 #判断目录是否存在 不存在则创建
 if(!(is_dir($directory))){
 $this->directory($directory);
 }
 #获取数据库最后一条id 当做文件名称
 $product_last_id=D('ApiProduct')->getLastId();
 $savename="ApiProduct_".time().'_'.($product_last_id['id']+1);
 $upload = new \Think\Upload();
 $upload->maxSize = 0;
 $upload->exts = array('doc','docx','xls','xlsx','pdf','txt');
 $upload->rootPath = $directory;
 $upload->saveName="$savename";
 $upload->savePath = '';
 $info = $upload->uploadOne($_FILES['banner_file_upload']);
 if(!$info){
 $res['code']=$upload->getError();
 $res['msg']='error';
 }else{
 $res['code']=0;
 $res['msg']='success';
 $res['src']="/Public/docment/".$savename.".".$info['ext'];
 }
 echo json_encode($res);die;
}
/**
* 递归创建文件
* @author erwa<erwa@qingjinju.net>
*/
public function directory($dir){
 return is_dir ( $dir ) or directory(dirname( $dir )) and mkdir ( $dir , 0777);
}

layui框架 文件上传 TP3.2.3 thinkPHP 后台处理