// base64 图片转为2进制文件
base64ToBlob (code) {
let parts = code.split(';base64,')
let contentType = parts[0].split(':')[1]
let raw = window.atob(parts[1])
let rawLength = raw.length
let uInt8Array = new Uint8Array(rawLength)
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i)
}
return new Blob([uInt8Array], {
type: contentType
})
},
导入上传文件
// 请求头:
file_xiaodu_daoRuList: {
url: "url", // 填入后台接口
headers: {
"Content-Type": "application/json;charset=UTF-8",
},
method: "file", // 注意对于上传文件来说method: "file",否则文件可能传不过去
paramType: "data",
},
<a-upload
name="file"
:multiple="false"
:customRequest="uploadFiles"
:showUploadList="false"
:beforeUpload="beforeUpload"
:file-list="fileList"
>
<a-button>导入</a-button>
</a-upload>
//上传前文件校验
beforeUpload(file) {
const isWord =
file.type === "application/pdf" ||
file.type ===
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" ||
file.type === "application/msword" ||
file.type === "application/vnd.ms-excel" ||
file.type ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
const isLt2M = file.size / 1024 / 1024 < 50;
return new Promise((resolve, reject) => {
if (!isWord) {
this.$message.error("请上传doc、docx、pdf、xls、xlsx格式的文件");
reject(file);
} else if (!isLt2M) {
this.$message.error("上传文件必须小于50MB!");
reject(file);
} else {
resolve(file);
}
});
},
// 上传
uploadFiles(file) {
const formData = new FormData();
formData.append("file", file.file);
this.$http("URL", formData, true).then(
(res) => {
console.log(res, 2312);
if (res.code === 200) {
this.$message.success(res.message);
} else {
this.$message.error(res.message);
file.status = "error";
}
}
);
this.getList();
},