需要注意的是,在Vue中发送请求时,需要设置responseType为'arraybuffer',以便接收字节数组。同时,在Spring Boot后端中,如何设置response的Content-Type为'application/octet-stream',以便浏览器将响应解析为字节数组。
时间: 2023-06-02 17:06:09 浏览: 111
java记账管理系统基于vue前端,后端springboot(含数据库脚本).rar
5星 · 资源好评率100%
您可以在Spring Boot后端的Controller中,使用注解@ResponseBody和设置response的Header来设置response的Content-Type。具体代码如下:
```java
@GetMapping("/download")
@ResponseBody
public byte[] download() throws IOException {
// 文件下载逻辑
byte[] data = ...;
// 设置response的Header
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "filename");
return data;
}
```
在Vue中发送请求时,设置responseType为'arraybuffer',如下所示:
```javascript
axios.get(url, {
responseType: 'arraybuffer'
}).then(response => {
const data = new Uint8Array(response.data);
// 处理字节数组
})
.catch(error => {
console.log(error);
});
```
阅读全文