文件上传下载格式化方法
1、上传
<input
ref="showinput2"
v-show="false"
type="file"
@change="upFile()"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
name=""
id="file" />
/**
* - accept属性限制文件 PDF DOC DOCX
* - accept: application/pdf,.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document
*/
const pollutionUpload = data => {
return http({
url: `api/pollution/upload`,
data,
method: 'post',
headers: { 'Content-Type': 'multipart/form-data' },
});
};
const $this = this;
const fileData = document.getElementById('file').files[0];
const params = new FormData();
const NameNode = `${this.pollutionText()}导入模板`;
const [filesName1] = this.filesName.split('.');
console.log(NameNode, this.filesName.split('.')[0]);
params.append('categoryId', this.pollutionTypeId);
params.append('file', fileData);
dataImport(params)
.then(res => {
console.log(res);
$this.filesName = '';
$this.BatchImportFlag = false;
$this.reset();
const obj = document.getElementById('file');
obj.value = '';
})
.catch(err => {
console.log(err);
});
const lisenseCopyPdf = data => {
return http({
url: `api/pollution/source/lisense/copy/${data}`,
method: 'get',
responseType: 'blob',
timeout: 20000 * 3,
});
};
let blob;
lisenseCopyPdf(data).then(res => {
blob = res;
})
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = e => {
const a = document.createElement('a');
a.download = 'fileName.pdf';
a.href = e.target.result;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
const res = await api();
$this.iframPageUrl = '';
const data = res.data;
let fileName = `正本.pdf`;
if ($this.iframeShowOne) {
fileName = `副本.pdf`;
}
const blob = new Blob([data], {
type: 'application/pdf;charset=utf-8',
});
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
const href = window.URL.createObjectURL(blob);
$this.iframPageUr = href;
$this.showFlag = false;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构