MediaWiki:Gadget-multiupload.js
注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件。
//阅读更多:https://minecraft-zh.gamepedia.com/MediaWiki:Gadget-multiupload.js //本文引自中文Minecraft Wiki百科(https://minecraft-zh.gamepedia.com/),文字内容遵守【知识共享 署名-非商业性使用-相同方式共享 3.0】协议。 mw.loader.using(['site']).then(function() { i18n = { specialpage: "特殊:上传文件", multiupload: "批量上传:", yes: "是", no: "否", sourcefiles: "源文件名:", uploadfiles: "上传文件", nofiles: "请选择要上传的文件!", uploading: "上传中……", uploaded: "已上传", failed: "上传失败", done: "上传完成" }; if (mw.config.get("wgPageName")!==i18n.specialpage) return; $("#wpUploadFile").parent().parent().addClass("regularFileSelect"); $("tr.regularFileSelect").after('<tr><td class="mw-label">'+i18n.multiupload+'</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+i18n.yes+'" /> '+i18n.yes+'</label> <label><input type="radio" name="multipleFiles" value="'+i18n.no+'" checked="" /> '+i18n.no+'</label></td></tr>'); $("tr.regularFileSelect").before('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">'+i18n.sourcefiles+'</td><td class="mw-input"><input type="file" id="multiupload" multiple /></td></tr>'); $("input[name='wpUpload']").addClass("regularFileSelect"); $("#wpDestFile").parent().parent().addClass("regularFileSelect"); $("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect"); $("span.mw-htmlform-submit-buttons").append('<input type="button" value="'+i18n.uploadfiles+'" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />'); $("input[name='multipleFiles']").change(function(){ if (this.value===i18n.yes) { $(".regularFileSelect").hide(); $(".multipleFileSelect").show(); } else { $(".regularFileSelect").show(); $(".multipleFileSelect").hide(); } }); $("#multiFileSubmit").click(function() { files = $("#multiupload")[0].files; if (files.length === 0) { mw.notify(i18n.nofiles,{title:"批量上传"}); return false; } summary = $("#wpUploadDescription").val(); if (summary !== "") text = summary; else text = ""; watch = "preferences"; if ($("#wpWatchthis").is(":checked")) watch = "watch"; else watch = "nochange"; curFile = 0; $("#firstHeading").text(i18n.uploading); $("#mw-content-text").html("<h3>"+i18n.uploaded+"</h3><ul></ul><div style='display:none;' id='multiUploadFailed'><h3>"+i18n.failed+"</h3><ul></ul></div>"); function gNF() { if(curFile>files.length) { $("#mw-content-text").append("<h3>"+i18n.done+"</h3>"); return; } if(files[curFile] === undefined) { curFile++; gNF(); return; } $.ajax({url:mw.util.wikiScript('api'),data:{action:'query',meta:'tokens',format:'json'},dataType:'json'}).done(function(data) { fd = new FormData(); fd.append("action","upload"); fd.append("token",data.query.tokens.csrftoken); fd.append("filename",files[curFile].name); fd.append("file",files[curFile]); if (text !== "") fd.append("comment",text); fd.append("watchlist",watch); fd.append("ignorewarnings",1); fd.append("format","json"); $.ajax({ url:mw.util.wikiScript('api'), method:'POST', data:fd, cache:false, contentType:false, processData:false, type:'POST' }).done(function(d){ if('error' in d){ var errmsg = ""; switch(d.error.code){ case 'fileexists-no-change': errmsg = "文件未改变"; break; default: errmsg = d.error.info; console.log(d); } $("#multiUploadFailed ul").append('<li>'+files[curFile].name+':'+errmsg+'</li>'); $("#multiUploadFailed").show(); } else $("#mw-content-text > ul").append('<li><a href="'+d.upload.imageinfo.descriptionurl+'" target="_blank">'+d.upload.filename+'</a></li>'); curFile++; gNF(); }).fail(function(d) { $("#multiUploadFailed ul").append('<li>'+files[curFile].name+'</li>'); $("#multiUploadFailed").show(); curFile++; gNF(); }); }); } gNF(); }); });