<div class="item-from-flex border-b-no"> <div class="item-flex-l"> <div class="item-tit"> 视频上传 </div> <div class="item-con"> <a href="javascript:void(0);" onclick="addUrlSys();" class="addr_y">新增</a> </div> </div> </div> <div class="item-from-flex pt0"> <textarea class="none" name="video" id="video" cols="30" rows="10"></textarea> <div id="url-box_sys" style="padding: 10px 10px;width: 100%;background: #9e9e9e17;"> </div> </div> <div class="item-from-flex"> <div class="item-flex-l"> <div class="item-tit"> 附件地址 </div> <div class="item-con flexi"> <input type="text" name="addonFieldExt[courseware]" value="{$ArchivesData.courseware|default=''}" id="addonFieldExt_courseware" class="input-txt" style="flex: 2;width: auto;padding: 6px 5px;border: 1px solid #e1e1e1;margin-right: 5px;"> <input type="file" id="courseware_file" data-type='local' onchange="upload_file_courseware_1585641738(this)" style="display: none;"> {if isset($channelRow.data.qiniuyun_open) && $channelRow.data.qiniuyun_open == 1} <a href="javascript:void(0);" class="addr_q" id="upload_addonFieldExt_courseware_qiniu" onclick="$('#courseware_file').attr('data-type','qiniu').trigger('click');">七牛云上传</a> {elseif isset($channelRow.data.oss_open) && $channelRow.data.oss_open == 1} <a href="javascript:void(0);" class="addr_q" id="upload_addonFieldExt_courseware_oss" onclick="$('#courseware_file').attr('data-type','oss').trigger('click');">oss上传</a> {elseif isset($channelRow.data.cos_open) && $channelRow.data.cos_open == 1} <a href="javascript:void(0);" class="addr_q" id="upload_addonFieldExt_courseware_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a> {else/} <a href="javascript:void(0);" class="addr_q" id="upload_addonFieldExt_courseware_local" onclick="$('#courseware_file').attr('data-type','local').trigger('click');">本地上传</a> {/if} </div> </div> </div> <script> $(function () { var data = '{$video_list|default=""}'; if(data){ data = JSON.parse(data); var num = 0; data.forEach(function(v){ num++; addUrlSys(num,v); }); } }) layui.use('upload', function(){ var upload = layui.upload; //执行实例 //创建监听函数 var xhrOnProgress=function(fun) { xhrOnProgress.onprogress = fun; //绑定监听 //使用闭包实现监听绑 return function() { var xhr = $.ajaxSettings.xhr(); //通过此方法获得XMLHttpRequest对象 //判断监听函数是否为函数 if (typeof xhrOnProgress.onprogress !== 'function') { return xhr; } //如果有监听函数并且xhr对象支持绑定时就把监听函数绑定上去 if (xhrOnProgress.onprogress && xhr.upload) { xhr.upload.onprogress = xhrOnProgress.onprogress; } return xhr; } }; upload.render({ elem: "#upload_video_sys_1" //绑定元素 ,url: "{:url('Uploadify/upVideo', ['savepath'=>'media'])}" //上传接口 ,accept: 'video' //视频 ,exts: '{$media_type}' ,size: {$upload_max_filesize} //限制文件大小,单位 KB ,before: function(obj){ $("#upload_video_sys_1").text('等待中...'); } ,xhr:xhrOnProgress ,progress: function(percent) { //上传进度回调 value进度值 $("#upload_video_sys_1").text('上传中...'+percent+'%'); } ,done: function(res){ if ("SUCCESS" == res.state) { $("#video_url_sys_1").val(res.url); $("#video_time_sys_1").val(res.time); $("#video_size_sys_1").val(res.size); $("#video_mime_sys_1").val(res.mime); $("#video_name_sys_1").val(res.title); $("#upload_video_sys_1").text('上传成功'); setTimeout(function(){ $('#upload_video_sys_1').text('本地上传'); }, 2000 ) }else { $("#upload_video_sys_1").text('上传失败'); setTimeout(function(){ $('#upload_video_sys_1').text('本地上传'); }, 2000 ) layer.msg(res.state,{icon: 2}); } } ,error: function(){ // layer.close(load); //关闭loading } }); }); function addUrlSys(n,v) { var is_show_qiniuyun = {$channelRow.data.qiniuyun_open|default=0}; var is_show_oss = {$channelRow.data.oss_open|default=0}; var is_show_cos = {$channelRow.data.cos_open|default=0}; if (n) { var num = n; var html = ""; html += "<div id=\"num_upload_box_sys\" class='media_del_1586481014_" + num + "' data-num='" + num + "' style='margin-bottom: 15px;'>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"text\" class=\"input-txt\" id=\"video_url_sys_" + num + "\" value=\"" + v.file_url + "\" style=\"width: 100% !important;\" placeholder=\"请输入链接地址\">\n" + " </div>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"text\" class=\"input-txt mr10\" id=\"video_title_sys_" + num + "\" value=\"" + v.file_title + "\" style=\"width: 230px !important;\" placeholder=\"请输入选集名称\"><input type=\"text\" class=\"input-txt\" id=\"video_time_sys_" + num + "\" value=\"" + v.file_time + "\" style=\"width: 120px !important;margin-left: auto;\" placeholder=\"请输入时长(秒)\">\n" + " </div>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_size_sys_" + num + "\" value=\"" + v.file_size + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_mime_sys_" + num + "\" value=\"" + v.file_mime + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_name_sys_" + num + "\" value=\"" + v.file_name + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_file_id_" + num + "\" value=\"" + v.file_id + "\">" + " <input type=\"file\" class=\"input-txt\" id=\"qiniu_click_sys_" + num + "\" onchange=\"QiniuUpload('" + num + "');\" style=\"display: none;\">\n" + " <input type=\"file\" class=\"input-txt\" id=\"oss_click_sys_" + num + "\" onchange=\"OssUpload('" + num + "');\" style=\"display: none;\">\n" + " <input type=\"file\" class=\"input-txt\" id=\"cos_click_sys_" + num + "\" onchange=\"CosUpload('" + num + "');\" style=\"display: none;\">\n"; if (is_show_qiniuyun == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"qiniu_upload_video_sys_" + num + "\" onclick=\"click_qiniu_sys('" + num + "')\">七牛云上传</a>\n"; } else if (is_show_oss == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"oss_upload_video_sys_" + num + "\" onclick=\"click_oss_sys('" + num + "')\">oss上传</a>\n"; } else if (is_show_cos == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"cos_upload_video_sys_" + num + "\" onclick=\"click_cos_sys('" + num + "');\">cos上传</a>\n"; } else { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"upload_video_sys_" + num + "\" data-num='" + num + "'>本地上传</a>\n"; } var IsGratis = 1 == v.gratis ? 'checked' : ''; html += " <label onselectstart='return false' style=\"display: flex;align-items: center;margin: 0;\"><input type='checkbox' id='video_gratis_sys_" + num + "' value='1' " + IsGratis + " style=\"margin-right: 2px;\">试看</label>" + "<a href=\"javascript:void(0);\" class=\"addr_q\" style=\"margin-left: auto;\" onclick=\"media_del('" + num + "')\">删除</a>\n" + " </div>\n" + "</div>"; $('#url-box_sys').append(html); } else { var num = $("#url-box_sys #num_upload_box_sys").last().attr("data-num"); if (!num) { num = 0; } num++; var html = ""; html += "<div id=\"num_upload_box_sys\" class='media_del_1586481014_" + num + "' data-num='" + num + "' style='margin-bottom: 15px;'>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"text\" class=\"input-txt\" id=\"video_url_sys_" + num + "\" style=\"width: 100% !important;display: inline-block;\" placeholder=\"请输入链接地址\">\n" + " </div>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"text\" class=\"input-txt mr10\" id=\"video_title_sys_" + num + "\" style=\"width: 230px !important;display: inline-block;\" placeholder=\"请输入选集名称\"><input type=\"text\" class=\"input-txt\" id=\"video_time_sys_" + num + "\" style=\"width: 120px !important;margin-left: auto;display: inline-block;\" placeholder=\"请输入时长(秒)\">\n" + " </div>\n" + " <div class=\"media_del_box\">\n" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_size_sys_" + num + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_mime_sys_" + num + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_name_sys_" + num + "\">" + " <input type=\"hidden\" class=\"input-txt\" id=\"video_file_id_" + num + "\">" + " <input type=\"file\" class=\"input-txt\" id=\"qiniu_click_sys_" + num + "\" onchange=\"QiniuUpload('" + num + "');\" style=\"display: none;\">\n" + " <input type=\"file\" class=\"input-txt\" id=\"oss_click_sys_" + num + "\" onchange=\"OssUpload('" + num + "');\" style=\"display: none;\">\n" + " <input type=\"file\" class=\"input-txt\" id=\"cos_click_sys_" + num + "\" onchange=\"CosUpload('" + num + "');\" style=\"display: none;\">\n"; if (is_show_qiniuyun == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"qiniu_upload_video_sys_" + num + "\" onclick=\"click_qiniu_sys('" + num + "')\">七牛云上传</a>\n"; }else if (is_show_oss == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"oss_upload_video_sys_" + num + "\" onclick=\"click_oss_sys('" + num + "')\">oss上传</a>\n"; }else if (is_show_cos == 1) { html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"cos_upload_video_sys_" + num + "\" onclick=\"click_cos_sys('" + num + "')\">cos上传</a>\n"; }else{ html += " <a href=\"javascript:void(0);\" class=\"addr_q\" id=\"upload_video_sys_" + num + "\" data-num='" + num + "'>本地上传</a>\n" ; } html += " <a href=\"javascript:void(0);\" class=\"addr_q\" style=\"margin-left: auto;\" onclick=\"media_del('" + num + "')\">删除</a>\n" + " <label onselectstart='return false' style=\"display: flex;align-items: center;margin: 0;\"><input type='checkbox' id='video_gratis_sys_" + num + "' value='1' style=\"margin-right: 2px;\">试看</label>" + " </div>\n" + " </div>"; $('#url-box_sys').append(html); } layui.use('upload', function(){ var upload = layui.upload; var xhrOnProgress=function(fun) { xhrOnProgress.onprogress = fun; return function() { var xhr = $.ajaxSettings.xhr(); if (typeof xhrOnProgress.onprogress !== 'function') { return xhr; } if (xhrOnProgress.onprogress && xhr.upload) { xhr.upload.onprogress = xhrOnProgress.onprogress; } return xhr; } }; upload.render({ elem: "#upload_video_sys_"+num ,url: "{:url('Uploadify/upVideo', ['savepath'=>'media'])}" ,accept: 'video' //视频 ,exts: '{$media_type}' ,size: {$upload_max_filesize} //限制文件大小,单位 KB ,before: function(obj){ $("#upload_video_sys_"+num).text('等待中...'); } ,xhr:xhrOnProgress ,progress: function(percent) { $("#upload_video_sys_"+num).text('上传中...'+percent+'%'); } ,done: function(res){ if ("SUCCESS" == res.state) { var n = $(this.item).attr('data-num'); $("#video_url_sys_"+n).val(res.url); $("#video_time_sys_"+n).val(res.time); $("#video_size_sys_"+n).val(res.size); $("#video_mime_sys_"+n).val(res.mime); $("#video_name_sys_"+n).val(res.title); $("#upload_video_sys_"+num).text('上传成功'); setTimeout(function(){ $('#upload_video_sys_'+num).text('本地上传'); }, 2000 ); }else { $("#upload_video_sys_"+num).text('上传失败'); setTimeout(function(){ $('#upload_video_sys_'+num).text('本地上传'); }, 2000 ); layer.msg(res.state,{icon: 2}); } } ,error: function(){ // layer.close(load); //关闭loading } }); }); } // 课件地址上传 function upload_file_courseware_1585641738(e){ var data_type = $(e).attr('data-type'); if ('qiniu' == data_type) { upload_addonFieldExt_courseware_qiniu(e); // 七牛云上传 } else if ('oss' == data_type) { upload_addonFieldExt_courseware_oss(e); // OSS上传 } else if ('cos' == data_type) { upload_addonFieldExt_courseware_cos(e); // COS上传 } else { var file = $(e)[0].files[0]; if (!file) { return false; } var formData = new FormData(); formData.append('file',file); $.ajax({ type: 'post', url: "{:url('Uploadify/DownloadUploadFileAjax')}", data: formData, contentType: false, processData: false, dataType: 'json', xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数 myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 // myXhr.upload.addEventListener('progress', progressHandlingFunction, false); myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; process = parseInt(curr / total * 100); $("#upload_addonFieldExt_courseware_local").html('上传中...'+process+"%"); }); } return myXhr; //xhr对象返回给jQuery使用 }, success: function (res) { if (res.code==0){ showErrorMsg(res.msg); $('#upload_addonFieldExt_courseware_local').html('本地上传'); }if (res.state && !res.url) { showErrorMsg(res.state); $('#upload_addonFieldExt_courseware_local').html('本地上传'); }else { $("#upload_addonFieldExt_courseware_local").html('上传成功'); setTimeout(function(){ $('#upload_addonFieldExt_courseware_local').html('本地上传'); }, 2000 ); var ori_url = $('#addonFieldExt_courseware').val(); $("#addonFieldExt_courseware").val(res.url); //删除上次的文件 if (ori_url) { del_media_file(ori_url) } } } }) } } function upload_addonFieldExt_courseware_qiniu(obj) { var file = $("#courseware_file")[0].files[0]; //获取文件路径名 var fileName = file.name; var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase(); var ext = judgeExt(fileExt,1); if (ext==-1) { showErrorAlert('不支持选中的文件格式,可在附件设置中修改'); return false; } var size = "{$upload_max_filesize}"; if (file.size > size) { showErrorAlert('文件大小超过限制,可在附件设置中修改'); return false; } $.ajax({ type: 'POST', url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload', data: {_ajax:1}, dataType: "JSON", success: function(res1){ if (1 == res1.code){ var token = res1.data.token; var formData = new FormData(); formData.append('file', file); formData.append('token', token); fileName = res1.data.filePath + fileExt; formData.append('key', fileName); $.ajax({ url: res1.data.uphost, type: 'POST', dataType: 'JSON', data: formData, timeout: 1200000, cache: false, //默认是true,但是一般不做缓存 processData: false, //用于对data参数进行序列化处理,这里必须false;如果是true,就会将FormData转换为String类型 contentType: false, //一些文件上传http协议的关系,自行百度,如果上传的有文件,那么只能设置为false xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数 myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 // myXhr.upload.addEventListener('progress', progressHandlingFunction, false); myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; process = parseInt(curr / total * 100); $("#upload_addonFieldExt_courseware_qiniu").html('上传中...'+process+"%"); }); } return myXhr; //xhr对象返回给jQuery使用 }, success: function(res2){ $("#upload_addonFieldExt_courseware_qiniu").html('上传成功'); setTimeout(function(){ $('#upload_addonFieldExt_courseware_qiniu').html('七牛云上传'); }, 2000 ); var video_url = res1.data.domain+"/"+res2.key; $("#addonFieldExt_courseware").val(video_url); }, error: function(e){ showErrorAlert(e.responseText); return false; } }); }else{ $("#courseware_file").val(''); showErrorAlert(res1.msg); } }, error: function(e){ $("#courseware_file").val(''); showErrorAlert(e.responseText); } }); } function upload_addonFieldExt_courseware_oss(obj) { var file = $("#courseware_file")[0].files[0]; //获取文件路径名 var fileName = file.name; var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase(); var ext = judgeExt(fileExt,1); if (ext==-1) { showErrorAlert('不支持选中的文件格式,可在附件设置中修改'); return false; } var size = "{$upload_max_filesize}"; if (file.size > size) { showErrorAlert('文件大小超过限制,可在附件设置中修改'); return false; } $.ajax({ type: 'POST', url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload', data: {_ajax:1}, dataType: "JSON", success: function(res1){ if (1 == res1.code){ fileName = res1.data.filePath + fileExt; //组装发送数据 var request = new FormData(); request.append("OSSAccessKeyId",res1.data.accessid);//Bucket 拥有者的Access Key Id。 request.append("policy",res1.data.policy);//policy规定了请求的表单域的合法性 request.append("Signature",res1.data.signature);//根据Access Key Secret和policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性 request.append("key",fileName);//文件名字,可设置路径 request.append("success_action_status",201);// 让服务端返回200,不然,默认会返回204 request.append('file', file);//需要上传的文件 file $.ajax({ url : res1.data.host, //上传阿里地址 data : request, processData: false, cache: false, contentType: false, dataType: 'xml', type : 'post', xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数 myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; var process = parseInt(curr / total * 100); $("#upload_addonFieldExt_courseware_oss").html('上传中...'+process+"%"); }); } return myXhr; //xhr对象返回给jQuery使用 }, success: function(res2){ var res = $(res2).find('PostResponse'); if (res) { var key = res.find('Key').text(); $("#upload_addonFieldExt_courseware_oss").html('上传成功'); setTimeout(function(){ $('#upload_addonFieldExt_courseware_oss').html('oss上传'); }, 2000 ); var video_url = res1.data.domain+"/"+key; $("#addonFieldExt_courseware").val(video_url); }else{ $("#upload_addonFieldExt_courseware_oss").html('上传失败'); setTimeout(function(){ $('#upload_addonFieldExt_courseware_oss').html('oss上传'); }, 2000 ); } }, error: function(e){ showErrorAlert(e.responseText); return false; } }); }else{ $("#courseware_file").val(''); showErrorAlert(res1.msg); } }, error: function(e){ $("#courseware_file").val(''); showErrorAlert(e.responseText); } }); } function click_qiniu_sys(num) { $("#qiniu_click_sys_"+num).trigger("click"); } function QiniuUpload(num) { var file = $("#qiniu_click_sys_"+num)[0].files[0]; //获取文件路径名 var fileName = file.name; var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase(); var ext = judgeExt(fileExt); if (ext==-1) { showErrorAlert('不支持选中的视频格式,可在附件设置中修改'); return false; } var size = "{$upload_max_filesize}"; if (file.size > size) { showErrorAlert('视频大小超过限制,可在附件设置中修改'); return false; } $.ajax({ type: 'POST', url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload', data: {_ajax:1}, dataType: "JSON", success: function(res1){ if (1 == res1.code){ var token = res1.data.token; var formData = new FormData(); formData.append('file', file); formData.append('token', token); fileName = res1.data.filePath + fileExt; formData.append('key', fileName); $.ajax({ url: res1.data.uphost, type: 'POST', dataType: 'JSON', data: formData, timeout: 1200000, cache: false, //默认是true,但是一般不做缓存 processData: false, //用于对data参数进行序列化处理,这里必须false;如果是true,就会将FormData转换为String类型 contentType: false, //一些文件上传http协议的关系,自行百度,如果上传的有文件,那么只能设置为false xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数 myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 // myXhr.upload.addEventListener('progress', progressHandlingFunction, false); myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; process = parseInt(curr / total * 100); $("#qiniu_upload_video_sys_"+num).text('上传中...'+process+"%"); }); } return myXhr; //xhr对象返回给jQuery使用 }, success: function(res2){ $("#qiniu_upload_video_sys_"+num).text('上传成功'); setTimeout(function(){ $('#qiniu_upload_video_sys_'+num).text('七牛云上传'); }, 2000 ) var video_url = res1.data.domain+"/"+res2.key; $("#video_url_sys_"+num).val(video_url); $("#video_mime_sys_"+num).val(''); $("#video_name_sys_"+num).val(res2.key); var rx=/^https?:\/\//i; if (!rx.test(video_url)) { video_url = 'http:'+video_url; } $.ajax({ type: 'GET', url: video_url+"?avinfo", data: {}, dataType: "JSON", success: function (res3) { $("#video_time_sys_"+num).val(parseInt(res3.format.duration)); $("#video_size_sys_"+num).val(res3.format.size); } }) }, error: function(e){ showErrorAlert(e.responseText); return false; } }); }else{ $("#qiniu_click_sys_"+num).val(''); showErrorAlert(res1.msg); } }, error: function(e){ $("#qiniu_click_sys_"+num).val(''); showErrorAlert(e.responseText); } }); } function click_oss_sys(num) { $("#oss_click_sys_"+num).trigger("click"); } function OssUpload(num) { var file = $("#oss_click_sys_"+num)[0].files[0]; //获取文件路径名 //获取视频时长start var url = URL.createObjectURL(file); var oVideo = document.createElement('video'); var duration = 0; oVideo.setAttribute('src',url); oVideo.oncanplay = ()=>{ duration = parseInt(oVideo.duration); } //获取视频时长end var fileName = file.name; var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase(); var ext = judgeExt(fileExt); if (ext==-1) { showErrorAlert('不支持选中的视频格式,可在附件设置中修改'); return false; } var size = "{$upload_max_filesize}"; if (file.size > size) { showErrorAlert('视频大小超过限制,可在附件设置中修改'); return false; } $.ajax({ type: 'POST', url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload', data: {_ajax: 1}, dataType: "JSON", success: function(res1){ if (1 == res1.code){ fileName = res1.data.filePath + fileExt; //组装发送数据 var request = new FormData(); request.append("OSSAccessKeyId",res1.data.accessid);//Bucket 拥有者的Access Key Id。 request.append("policy",res1.data.policy);//policy规定了请求的表单域的合法性 request.append("Signature",res1.data.signature);//根据Access Key Secret和policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性 request.append("key",fileName);//文件名字,可设置路径 request.append("success_action_status",201);// 让服务端返回200,不然,默认会返回204 request.append('file', file);//需要上传的文件 file $.ajax({ url : res1.data.host, //上传阿里地址 data : request, processData: false, cache: false, contentType: false, dataType: 'xml', type : 'post', xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数 myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { //检查upload属性是否存在 //绑定progress事件的回调函数 myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; var process = parseInt(curr / total * 100); $("#oss_upload_video_sys_"+num).text('上传中...'+process+"%"); }); } return myXhr; //xhr对象返回给jQuery使用 }, success : function(data) { var res = $(data).find('PostResponse'); if (res) { var key = res.find('Key').text(); $("#oss_upload_video_sys_"+num).text('上传成功'); setTimeout(function(){ $('#oss_upload_video_sys_'+num).text('oss上传'); }, 2000 ) var video_url = res1.data.domain+"/"+key; $("#video_url_sys_"+num).val(video_url); $("#video_mime_sys_"+num).val(''); $("#video_name_sys_"+num).val(key); $("#video_time_sys_"+num).val(duration); $("#video_size_sys_"+num).val(file.size); }else{ $("#oss_upload_video_sys_"+num).text('上传失败'); setTimeout(function(){ $('#oss_upload_video_sys_'+num).text('oss上传'); }, 2000 ) } }, error : function(e) { console.log(e.responseText); } }); }else{ $("#oss_click_sys_"+num).val(''); showErrorAlert(res1.msg); } }, error: function(e){ $("#oss_click_sys_"+num).val(''); showErrorAlert(e.responseText); } }); } /*腾讯云COS上传代码 --- 陈风任 --- 2021-02-03*/ function click_cos_sys(num) { $("#cos_click_sys_"+num).trigger("click"); } // 上传视频 function CosUpload(num) { // 获取文件路径名 var file = $("#cos_click_sys_"+num)[0].files[0]; // 获取视频时长start var url = URL.createObjectURL(file); var oVideo = document.createElement('video'); var duration = 0; oVideo.setAttribute('src', url); oVideo.oncanplay = ()=>{ duration = parseInt(oVideo.duration); } // 获取视频时长end var fileName = file.name; var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase(); var ext = judgeExt(fileExt); if (ext == -1) { showErrorAlert('不支持选中的视频格式,可在附件设置中修改'); return false; } var size = "{$upload_max_filesize}"; if (file.size > size) { showErrorAlert('视频大小超过限制,可在附件设置中修改'); return false; } var formData = new FormData(); formData.append('file', file); formData.append('file_ext', fileExt); $.ajax({ type: 'post', url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1', data: formData, contentType: false, processData: false, dataType: 'json', xhr: function () { myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { myXhr.upload.addEventListener('progress', function(e){ var curr = e.loaded; var total = e.total; process = parseInt(curr / total * 100); if (100 == process) { process = 99; layer_loading('上传腾讯云'); } $("#cos_upload_video_sys_"+num).text('上传中...'+process+"%"); }); } return myXhr; }, success: function(res) { layer.closeAll(); if (1 == res.code) { $("#video_url_sys_" + num).val(res.data.url); $("#video_title_sys_" + num).val(res.data.name); $("#video_time_sys_" + num).val(duration); $("#video_size_sys_" + num).val(res.data.size); $("#cos_upload_video_sys_"+num).text('上传成功'); } else { $("#cos_upload_video_sys_"+num).text('上传失败'); } setTimeout(function(){ $('#cos_upload_video_sys_'+num).text('cos上传'); }, 2000); }, error: function(e){ layer.closeAll(); $("#cos_click_sys_"+num).val(''); showErrorAlert(e.responseText); } }); } /* 批量导入视频信息 end */ function urlToStr() { var video = []; $("#url-box_sys div").each(function(){ var n = $(this).attr('data-num'); var arr ={}; arr.file_url = $("#video_url_sys_"+n).val(); if (!arr.file_url) { return true } arr.file_title = $("#video_title_sys_"+n).val(); arr.file_name = $("#video_name_sys_"+n).val(); arr.file_time = $("#video_time_sys_"+n).val(); arr.file_size = $("#video_size_sys_"+n).val(); arr.file_mime = $("#video_mime_sys_"+n).val(); var gratis_checked = $("#video_gratis_sys_"+n).is(':checked'); if (gratis_checked == true){ arr.gratis = 1; } else{ arr.gratis = 0; } video.push(arr); }); video = JSON.stringify(video) $("#video").val(video) } //获取文件类型 function judgeExt(ext,i) { var type = ''; if (i==1){ type = "{$file_type}"; }else{ type = "{$media_type}"; } var extArr = []; extArr = type.split("|"); var ext = ext.replace(".",""); return extArr.indexOf(ext); } //删除 function media_del(num) { var media_url = $("#video_url_sys_"+num).val(); if (media_url) { del_media_file(media_url); } $(".media_del_1586481014_"+num).remove(); } function del_media_file(path){ var url = ''; {if isset($channelRow.data.qiniuyun_open) && $channelRow.data.qiniuyun_open == 1} url = "{:url('plugins/Qiniuyun/deleteQny')}"; {elseif isset($channelRow.data.oss_open) && $channelRow.data.oss_open == 1} url = "{:url('plugins/AliyunOss/deleteOss')}"; {elseif isset($channelRow.data.cos_open) && $channelRow.data.cos_open == 1} url = "{:url('plugins/Cos/deleteCos')}"; {else/} url = "{:url('user/Uploadify/del_local')}"; {/if} $.ajax({ type: 'GET', url: url, data: {_ajax: 1, filenames: path}, success: function (res1) { } }); } </script>