文件上传下载以及接口类型

文件上传formData进行文件上传,

headers: {
      'Content-Type': 'multipart/form-data', // 关键
 }
<el-upload :http-request="importModelListFn" :show-file-list="false" style="display: inline-block;">
     <el-button type="primary" icon="Upload" class="move-btn">导入模板</el-button>
</el-upload>


// 模板导入
const importModelListFn = (options: any) => {
  let file = options.file
  let formData = new FormData()
  formData.append('file', file)//携带文件
  formData.append('name', file.name)//携带其他参数
  formData.append('treeId', currentNode.value.id)//携带其他参数
  formData.append('type', treeType.value)//携带其他参数
  //上传接口
  importModelreportListApi(formData).then(res => {
    if (res.data.code == 0) {
      getRightTable()
    }
  })
}

前端接收文件,接口处加上类型限定。

  responseType:'blob'

接收文件并下载

const importTableModel = (row: any) => {
  importTableModelreportAPi({ id: row.id }).then(res => {
    let url = window.URL.createObjectURL(new Blob([res.data]))
    const a = document.createElement('a');
    a.href = url;
    a.download = row.name.split('.')[0] + '.docx';
    a.click();
    URL.revokeObjectURL(url);
  })
}

window.URL.createObjectURL是 JavaScript 中的一个方法,可以将一个本地文件或者一个 Blob 对象转换成一个可供网页使用的 URL。这个方法可以用来显示本地文件或者 Blob 对象,例如图片或者音频。使用时需要传入一个本地文件或者 Blob 对象作为参数。使用完 URL 对象后,应该调用 window.URL.revokeObjectURL 函数来释放资源。

responseType的几种类型:

""默认值,响应将作为字符串返回
"arraybuffer"响应将作为ArrrayBiffer对象返回,适用于处理二进制数据,如图片,音频等。
"blob"响应将作为blob对象返回,用于处理二进制大对象
"document"响应将作为Document对象返回,通常用于处理XML数据
"json"响应将作为解析后的JSON对象返回
"text"响应将作为字符串返回

contentType的几种类型:

文本类型

text/plain表示纯文本数据,不包含任何格式化信息。
应用场景:常用于传输简单的文本内容,如日志文件、配置文件等。
text/html表示超文本标记语言(HTML)文档。
应用场景:在网页开发中,服务器返回给浏览器的 HTML 页面通常使用此类型。
text/css表示层叠样式表(CSS)文件。
应用场景:用于传输网页的样式信息。
text/javascript表示 JavaScript 脚本文件。
应用场景:用于传输网页中使用的 JavaScript 代码。

图像类型

image/jpeg表示 JPEG 格式的图像文件
应用场景:是互联网上最常用的图像格式之一,适用于照片等色彩丰富的图像。
image/png表示 PNG 格式的图像文件。
应用场景:支持透明背景,常用于图标、logo 等需要透明效果的图像。
image/gif表示 GIF 格式的图像文件,支持动画效果。
应用场景:常用于制作简单的动画、表情包等。

音频和视频类型

audio/mpeg表示 MPEG 格式的音频文件,如 MP3。
应用场景:是互联网上最常用的音频格式之一。
video/mp4表示 MP4 格式的视频文件。
应用场景:是互联网上最常用的视频格式之一,具有广泛的兼容性。

表单数据类型

application/x-www-form-urlencoded是表单数据的默认编码方式,将表单数据编码为键值对,并用 & 符号分隔。
应用场景:常用于简单的表单提交,如登录表单、搜索表单等。
multipart/form-data用于上传文件的表单编码方式,允许在表单中包含二进制数据。
应用场景:当表单中需要上传文件时,必须使用此类型。

JSON 和 XML 类型

application/json表示 JSON 格式的数据。
应用场景:在前后端数据交互中广泛使用,用于传输结构化的数据。
application/xml表示 XML 格式的数据。
应用场景:在一些传统的 Web 服务和数据交换中仍然使用。

其他类型

application/octet-stream

描述:表示二进制流数据,通常用于下载文件。

应用场景:当服务器返回的是一个通用的二进制文件,无法确定其具体类型时,使用此类型。

这些是常见的 Content-Type 类型,实际应用中可能会根据具体需求使用更多

文件上传以及切片上传

文件接收

文件下载

文件预览

文件的在线编辑,文件模板的生成

文件添加标记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值