UNPKG

@vuux/editor

Version:

Vue Nuxt 富文本编辑器

39 lines (38 loc) 1.27 kB
import r from "../component/message.mjs"; const y = ({ uid: t, uploadUrl: a, selectedFile: f, headers: c = {}, data: p = {}, name: l = "file", onSuccess: u, onError: o, onProgress: T }) => { if (!a) return o(t, "无效上传地址"), { cancel: () => { } }; const s = new XMLHttpRequest(), n = new FormData(); n.append(l, f); 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 x = e.loaded / e.total * 100; T(t, x); } }, 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("上传失败:服务器返回错误!")) : (u(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("上传已取消"); } }; }; export { y as UploadRequest };