1.在表單上傳組件中,添加文件上傳的主鍵按鈕:
2.選用文檔中的上傳文件進度的回調:
我自己的代碼::::
(html代碼)
<div class="layui-form-item"> <label class="layui-form-label">視頻上傳</label> <button type="button" class="layui-btn" id="shipin_src"> <i class="layui-icon"></i>上傳視頻 </button> <button type="button" class="layui-btn" id="uploadBtn"> 開始上傳 </button> <!--縮略預覽圖--> <input type="text" disabled name="src" value="" style="width:300px"> <span id="mv_m"></span> <div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="progressBar"> <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div> </div> </div>
(js代碼)
//上傳視頻 upload.render({ elem: '#shipin_src' //綁定元素 , url: '/admin/upload/ShiPinUpload' //上傳接口 ,accept: 'video' ,auto:false ,bindAction:'#uploadBtn' , progress: function(value) { console.log("進度:" + value + '%'); element.progress('progressBar',value + '%'); }, choose: function(obj) { obj.preview(function(index, file, result) { $('input[name="src"]').html(file.name); // $('input[name="src"]').val(file.data['src']); }); } , done: function (res) { if (res.code>0) { //上傳完畢回調 layer.msg(res.msg,{icon:2}); return false; }else { //上傳完畢回調 $('#mv_m').html(res.data['sizem']+'M'); $('input[name="src"]').val(res.data['src']); layer.msg("上傳成功!",{icon:1}); } } , error: function () { //請求異常回調 } });
差點忘記 一段添加在js之前的代碼:(一定要添加,這個是檢測的上傳進度)
//創建監聽函數 var xhrOnProgress = function (fun) { xhrOnProgress.onprogress = fun; //綁定監聽 //使用閉包實現監聽綁 return function () { //通過$.ajaxSettings.xhr();獲得XMLHttpRequest對象 var xhr = $.ajaxSettings.xhr(); //判斷監聽函數是否為函數 if (typeof xhrOnProgress.onprogress !== 'function') return xhr; //如果有監聽函數並且xhr對象支持綁定時就把監聽函數綁定上去 if (xhrOnProgress.onprogress && xhr.upload) { xhr.upload.onprogress = xhrOnProgress.onprogress; } return xhr; } }
3.PHP后台接收代碼:
/** * 視頻文件上傳 * * * */ public function ShiPinUpload() { $file = request()->file('file'); //接收文件 //判斷文件是否為空 if($file == null){ exit(json_encode(['code'=>1,'msg'=>'沒有視頻上傳!'])); } //獲取上傳圖片大小 $fileImgSize = $file->getInfo('size'); $SizeM = $fileImgSize/1048576; //保存文件地址 $info = $file->move('../public/mv_file'); //替換文件的路徑,輸出路徑地址 $img = str_replace('\\','/','/mv_file'.'/'.$info->getSaveName()); exit(json_encode(['code'=>0,'data'=>['src'=>$img,'title'=>$info->getSaveName(),'sizem'=>$SizeM]])); } }
非常簡單!!!!!!
切記文件上傳功能,一定要在php.ini中定義最大上傳文件Size ;
如果出現大文件上傳失敗:請看下一篇文章---------解決服務器接受最大上傳上限