1. 程式人生 > >layui框架檔案上傳 + TP3.2.3 檔案上傳後臺處理(php)

layui框架檔案上傳 + TP3.2.3 檔案上傳後臺處理(php)

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<
[email protected]
> */ public function directory($dir){ return is_dir ( $dir ) or directory(dirname( $dir )) and mkdir ( $dir , 0777); }