layui框架檔案上傳 + TP3.2.3 檔案上傳後臺處理(php)
阿新 • • 發佈:2018-12-31
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);
}