@vuux/editor
Version:
Vue Nuxt 富文本编辑器
2 lines (1 loc) • 1.05 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../component/message.cjs"),b=({uid:t,uploadUrl:a,selectedFile:l,headers:c={},data:p={},name:u="file",onSuccess:f,onError:o,onProgress:T})=>{if(!a)return o(t,"无效上传地址"),{cancel:()=>{}};const s=new XMLHttpRequest,n=new FormData;n.append(u,l);for(const e of Object.keys(p))n.append(e,p[e]);s.open("POST",a,!0);for(const e of Object.keys(c))s.setRequestHeader(e,c[e]);return s.upload.onprogress=e=>{if(e.lengthComputable){const y=e.loaded/e.total*100;T(t,y)}},s.onload=()=>{if(s.status>=200&&s.status<300)try{const e=JSON.parse(s.responseText);e.error||e.err?(o(t,e),r.error("上传失败:服务器返回错误!")):(f(t,e),r.success("上传成功"))}catch{o(t,s.responseText),r.error("上传失败:解析响应错误!")}else o(t,s.responseText),r.error(`上传失败:HTTP ${s.status}!`)},s.onerror=()=>{o(t,s.responseText),r.error("上传失败:请求错误!")},s.send(n),{cancel(){s.abort(),r.success("上传已取消")}}};exports.UploadRequest=b;