/** * 适用于附件、视频、音频上传 * @param pickbtn 选取按钮 * @param showlist * @param filesinglesizelimit 上传文件大小,int * @param filenumlimit 允许上传文件数量 * @param extensions 扩展名,gif,jpg * @param mimetypes 类型,image/gif * @type 文件类型 * @return */ function initfileuploader(pickbtn, showlist, filesinglesizelimit, filenumlimit, extensions, mimetypes, type,obj) { var base_url = "/jslib/webuploader"; var $list = $("#" + showlist); $list.addclass("uploader-file-list"); var state = "pending"; var datas = {types: ""+type+"",obj: ""+obj+""}; var uploader = webuploader.create({ auto: true, swf: base_url + '/uploader.swf', server: '/uploadm/manage', pick: '#' + pickbtn, resize: false, formdata: datas, fileval: "file", filenumlimit: filenumlimit, filesinglesizelimit: filesinglesizelimit, compress: false, accept: { title: 'file', extensions: extensions, mimetypes: mimetypes } }); // 当有文件被添加进队列的时候 uploader.on( 'filequeued', function( file ) { $list.append( '
' + '
' + '删除' + '
' + '

' + '
' + file.name +'
' + '
等待上传...
' + '
' ); $img =$("#"+file.id).find('img'); var ext=file.ext if(ext=="doc" || ext == 'docx'){ $img.attr("src","/jslib/admin/images/word.png"); }else if(ext=="xls" || ext == 'xlsx'){ $img.attr("src","/jslib/admin/images/excel.png"); }else if(ext=="pdf"){ $img.attr("src","/jslib/admin/images/pdf.png"); }else if(ext=="ppt"|| ext == 'pptx'){ $img.attr("src","/jslib/admin/images/ppt.png"); }else if(type=="music"){ $img.attr("src","/jslib/admin/images/music.png"); }else if(type=="video"){ $img.attr("src","/jslib/admin/images/video.png"); }else{ $img.attr("src","/jslib/admin/images/annex.png"); } }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadprogress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress .progress-bar'); // 避免重复创建 if ( !$percent.length ) { $percent = $('
' + '
' + '
' + '
').appendto( $li ).find('.progress-bar'); } var fs=(percentage * 100).tofixed(2); $li.find('div.state').text('上传中'+fs+ '%'); $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on( 'uploadsuccess', function( file, response ) { $( '#'+file.id ).find('div.state').text('已上传'); $( '#'+file.id ).append(""); settimeout(function () { $('#'+file.id ).find('div.state').fadeout(); }, 500); }); /*uploader.on( 'uploadsuccess', function( file, response ) { $( '#'+file.id ).append(""); });*/ uploader.on( 'uploaderror', function( file ) { $( '#'+file.id ).find('div.error').text('上传出错'); }); uploader.on( 'uploadcomplete', function( file ) { $( '#'+file.id ).find('.progress').fadeout(); }); /* uploader.on( 'uploadcomplete', function( file ) { $( '#'+file.id ).find('.progress').fadeout(); });*/ uploader.on( 'error', function( type ) { if (type == "q_exceed_num_limit") { layer.msg("上传的文件数量不能超过" + filenumlimit); } else if (type == "q_exceed_size_limit") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "q_type_denied") { layer.msg("不支持这种文件类型"); } else if (type == "f_exceed_size") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "f_duplicate") { layer.msg("请勿重复上传相同文件!"); } else { layer.msg(type); } }); $("body").on("click","#"+showlist+" .removefilelistener", function(){ removeuploadfile(uploader, $(this)); }); //点击获取路径按钮,弹出路径供用户选择 $("body").on("click","#"+showlist+" .copyurl", function(){ var copyurl=$(this).parents('dd').find('div.infopath').html() layer.open({ title:'提示信息', content:'如有需要请复制以下链接:
'+copyurl, btn: ['关闭'] ,yes: function(index, layero){ layer.close(index); } }); }); } /** * 特殊定制的方法 用在word上传生成内容 word上传后默认调取了生成方法 * @param pickbtn * @param showlist * @param filesinglesizelimit * @param filenumlimit * @param extensions * @param mimetypes * @param type * @param obj */ function initfileuploader_word(pickbtn, showlist, filesinglesizelimit, filenumlimit, extensions, mimetypes, type,obj) { var base_url = "/jslib/webuploader"; var $list = $("#" + showlist); $list.addclass("uploader-file-list"); var state = "pending"; var datas = {types: ""+type+"",obj: ""+obj+""}; var uploader = webuploader.create({ auto: true, swf: base_url + '/uploader.swf', server: '/uploadm/manage', pick: '#' + pickbtn, resize: false, formdata: datas, fileval: "file", filenumlimit: filenumlimit, filesinglesizelimit: filesinglesizelimit, compress: false, accept: { title: 'file', extensions: extensions, mimetypes: mimetypes } }); // 当有文件被添加进队列的时候 uploader.on( 'filequeued', function( file ) { $list.append( '
' + '
' + '删除' + '
' + '

' + '
' + file.name + '
' + '
等待上传...
' + '
' ); $img =$("#"+file.id).find('img'); var ext=file.ext if(ext=="doc" || ext == 'docx'){ $img.attr("src","/jslib/admin/images/word.png"); } }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadprogress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress .progress-bar'); // 避免重复创建 if ( !$percent.length ) { $percent = $('
' + '
' + '
' + '
').appendto( $li ).find('.progress-bar'); } var fs=(percentage * 100).tofixed(2); $li.find('div.state').text('上传中'+fs+ '%'); $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on( 'uploadsuccess', function( file, response ) { $( '#'+file.id ).find('div.state').text('已上传'); $( '#'+file.id ).append(""); settimeout(function () { $('#'+file.id ).find('div.state').fadeout(); }, 500); $img =$("#"+file.id).find('img'); var ext=file.ext if(ext=="doc" || ext == 'docx'){ $img.attr("src","/jslib/admin/images/word.png"); } $(".createarticlebydoclistener").click();//点击生成按钮,调取生成功能。 }); uploader.on( 'uploaderror', function( file ) { $( '#'+file.id ).find('div.error').text('上传出错'); }); uploader.on( 'uploadcomplete', function( file ) { $( '#'+file.id ).find('.progress').fadeout(); }); uploader.on( 'error', function( type ) { if (type == "q_exceed_num_limit") { //layer.msg("上传的文件数量不能超过" + filenumlimit); layer.msg("您已经导入过一次文档,请退出后重新导入!"); } else if (type == "q_exceed_size_limit") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "q_type_denied") { layer.msg("不支持这种文件类型"); } else if (type == "f_exceed_size") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "f_duplicate") { layer.msg("请勿重复上传相同文件!"); } else { layer.msg(type); } }); // 给删除按钮绑定删除方法 $("body").on("click","#"+showlist+" .removefilelistener", function(){ removeuploadfile_word(uploader, $(this)); }); } /** * 图片上传 * @param pickbtn 选取按钮 * @param uploadbtn 上传按钮 * @param showlist * @param filesinglesizelimit 文件大小,int * @param filenumlimit 文件数量 * @param extensions 扩展名,gif,jpg * @param mimetypes 类型,image/gif * @param type 文件类型 * @return */ function initimageuploader(pickbtn, showlist, filesinglesizelimit, filenumlimit, extensions, mimetypes, type,obj) { var base_url = "/jslib/webuploader"; var $list = $("#" + showlist); var state = "pending"; var thumbnailwidth = 120; var thumbnailheight = 120; var datas = {types: ""+type+"",obj: ""+obj+""}; $list.addclass("uploader-img-list"); var uploader = webuploader.create({ auto: true, swf: base_url + '/uploader.swf', server: '/uploadm/manage', pick: '#' + pickbtn, resize: false, formdata: datas, fileval: "file", filenumlimit: filenumlimit, filesinglesizelimit: filesinglesizelimit, compress: false, accept: { title: 'file', extensions: extensions, mimetypes: mimetypes } }); // 当有文件被添加进队列的时候 uploader.on( 'filequeued', function( file ) { //file = eval('('+file+')'); var $li = $( '
' + '
' + '删除' + '
' + '

' + '
' + file.name + '
' + '
' ), $img = $li.find('img'); // $list为容器jquery实例 $list.append( $li ); // 创建缩略图 // 如果为非图片文件,可以不用调用此方法。 // thumbnailwidth x thumbnailheight 为 100 x 100 uploader.makethumb( file, function( error, src ) { if ( error ) { $img.replacewith('不能预览'); return; } $img.attr( 'src', src ); }, thumbnailwidth, thumbnailheight ); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadprogress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress span'); // 避免重复创建 if ( !$percent.length ) { $percent = $('

') .appendto( $li ) .find('span'); } $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on( 'uploadsuccess', function( file, response ) { $( '#'+file.id ).addclass('upload-state-done'); var infoobj = eval("("+response.message+")"); $( '#'+file.id ).append(""); }); uploader.on( 'uploaderror', function( file ) { var $li = $( '#'+file.id ), $error = $li.find('div.error'); // 避免重复创建 if ( !$error.length ) { $error = $('
').appendto( $li ); } //$error.text('上传失败'); }); uploader.on( 'uploadcomplete', function( file ) { $( '#'+file.id ).find('.progress').remove(); }); uploader.on( 'error', function( type ) { if (type == "q_exceed_num_limit") { layer.msg("上传的文件数量不能超过" + filenumlimit); } else if (type == "q_exceed_size_limit") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "q_type_denied") { layer.msg("不支持这种文件类型"); } else if (type == "f_exceed_size") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "f_duplicate") { layer.msg("请勿重复上传相同文件!"); } else { layer.msg(type); } }); $("body").on("click","#"+showlist+" .removefilelistener", function(){ removeuploadfile(uploader, $(this)); }); // 为dd添加hover效果 显示功能按钮 $("#"+showlist+" .file-item").live("mouseenter", function(){ $(this).find(".file-panel").stop(true,true).slidedown(); $(this).find(".info").stop(true,true).slidedown() }); $("#"+showlist+" .file-item").live("mouseleave", function(){ $(this).find(".file-panel").stop(true,true).slideup() $(this).find(".info").stop(true,true).slideup() }); } /** * 图片上传,根据图片水印设置进行处理 * @param pickbtn 选取按钮 * @param uploadbtn 上传按钮 * @param showlist * @param filesinglesizelimit 文件大小,int * @param filenumlimit 文件数量 * @param extensions 扩展名,gif,jpg * @param mimetypes 类型,image/gif * @param type 文件类型 * @return */ function initimageuploader_sy(pickbtn, showlist, filesinglesizelimit, filenumlimit, extensions, mimetypes, type,obj) { var base_url = "/jslib/webuploader"; var $list = $("#" + showlist); var state = "pending"; var thumbnailwidth = 120; var thumbnailheight = 120; var datas = {types: ""+type+"",obj: ""+obj+""}; var uploader = webuploader.create({ auto: true, swf: base_url + '/uploader.swf', server: '/uploadm/manage1', pick: '#' + pickbtn, resize: false, formdata: datas, fileval: "file", filenumlimit: filenumlimit, filesinglesizelimit: filesinglesizelimit, compress: false, accept: { title: 'file', extensions: extensions, mimetypes: mimetypes } }); uploader.on( 'uploadbeforesend', function( block, data ) { delete data.id; //是否使用水印 var isused=$('.personalsy input:radio[name="isused"]:checked').val(); if(isused!=null && isused!=undefined && isused!=""){ data.isused=isused; var obj=$('#picturewatermarkform').serializejson(); for(var key in obj){ if(obj.hasownproperty(key)){ data[key]=obj[key]; } } } }); // 当有文件被添加进队列的时候 uploader.on( 'filequeued', function( file ) { var $li = $( '
' + '
' + '删除' + '
' + '

' + '
' + file.name + '
' + '
' ), $img = $li.find('img'); // $list为容器jquery实例 $list.append( $li ); // 创建缩略图 // 如果为非图片文件,可以不用调用此方法。 // thumbnailwidth x thumbnailheight 为 100 x 100 uploader.makethumb( file, function( error, src ) { if ( error ) { $img.replacewith('不能预览'); return; } $img.attr( 'src', src ); }, thumbnailwidth, thumbnailheight ); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadprogress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress span'); // 避免重复创建 if ( !$percent.length ) { $percent = $('

') .appendto( $li ) .find('span'); } $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on( 'uploadsuccess', function( file, response ) { $( '#'+file.id ).addclass('upload-state-done'); var infoobj = eval("("+response.message+")"); $( '#'+file.id ).append(""); //替换图片的src var data=eval("("+response.cc+")"); $( '#'+file.id+' img' ).attr( 'src', data.path ); }); uploader.on( 'uploaderror', function( file ) { var $li = $( '#'+file.id ), $error = $li.find('div.error'); // 避免重复创建 if ( !$error.length ) { $error = $('
').appendto( $li ); } //$error.text('上传失败'); }); uploader.on( 'uploadcomplete', function( file ) { $( '#'+file.id ).find('.progress').remove(); }); uploader.on( 'error', function( type ) { if (type == "q_exceed_num_limit") { layer.msg("上传的文件数量不能超过" + filenumlimit); } else if (type == "q_exceed_size_limit") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "q_type_denied") { layer.msg("不支持这种文件类型"); } else if (type == "f_exceed_size") { layer.msg("上传的文件大小不能超过" + filesinglesizelimit/(1024*1024) + "m"); } else if (type == "f_duplicate") { layer.msg("请勿重复上传相同文件!"); } else { layer.msg(type); } }); $("body").on("click","#"+showlist+" .removefilelistener", function(){ removeuploadfile(uploader, $(this)); }); // 为dd添加hover效果 显示功能按钮 $("#"+showlist+" .file-item").live("mouseenter", function(){ $(this).find(".file-panel").stop(true,true).slidedown(); $(this).find(".info").stop(true,true).slidedown() }); $("#"+showlist+" .file-item").live("mouseleave", function(){ $(this).find(".file-panel").stop(true,true).slideup() $(this).find(".info").stop(true,true).slideup() }); } /** * 通用的删除上传文件、图片的方法 * @return */ function removeuploadfile(uploader,obj) { var parentobj = obj.parent().parent(); var id = parentobj.attr("id"); layer.open({ icon:'3', title:'提示信息', content: '是否确定删除,删除后不可恢复!', btn: ['确定', '取消'] ,yes: function(index, layero){ //【按钮一】的回调 if(isnan(id)){ //被上传控件托管,还没有进入annex,直接删除文件即可 try { uploader.removefile(id, true); parentobj.remove(); //移除可视化部分 } catch (e) { // todo: handle exception } }else{ //物理删除 var filepath = parentobj.find("input").val(); filepath = filepath.substring(0, filepath.indexof("|")); jquery.ajax({ type:'post', datatype:'text', url:'/uploadm/deletefile', data: 'annexid='+id, success:function(data){ parentobj.remove(); //移除可视化部分 } }); } layer.close(index); },btn2: function(index, layero){ //【按钮二】的回调 } }); } /** * 文章导入特用的删除上传文件的方法 * @return */ function removeuploadfile_word(uploader,obj) { var parentobj = obj.parent().parent(); var id = parentobj.attr("id"); layer.open({ icon:'3', title:'提示信息', content: '内容导入成功,再次导入前请清空内容。', btn: ['确定'] ,btnalign: 'c' ,yes: function(index, layero){ if(isnan(id)){ //被上传控件托管,还没有进入annex,直接删除文件即可 try { uploader.removefile(id, true); parentobj.remove(); //移除可视化部分 } catch (e) { // todo: handle exception } } layer.close(index); },btn2: function(index, layero){ } }); } /** * word生成内容 方法于2022年1月17日移至upload.js中 */ $(".createarticlebydoclistener").click(function() { var docfilename = $( "#createarticlebydoccontainer input[name='annexes']").val(); if (docfilename == undefined || docfilename == null) { layer.msg("请先上传word文件"); return false; } docfilename = docfilename.split("|")[0]; var datas = 'data=' + docfilename + ''; jquery.ajax({ type : 'post', datatype : 'text', url : '/admin/article/createarticlebydoc', data : datas, success : function(data) { data = json.parse(data); //layer.msg("内容生成成功!") $("#wordlist .removefilelistener").click() //内容生成后自动调用删除方法 insertuserdefined("articlecontenteditor", data.message); return false; } }); }) /** * 文件上传成功后点击修改执行的方法 */ function updateannex(v){ var href = '/admin/article/updateannex?id='+ v; ajaxdialog({title:'图片编辑',width:'680',height:'400',isfull:false},href); }