quarkus 后端将图片打包成压缩包返回vue前端 前端接收并下载demo
时间: 2024-01-20 09:04:28 浏览: 174
是的,Quarkus 后端可以将多个图片打包成一个压缩包并将其返回给 Vue 前端。这可以通过使用 Java 的 ZipOutputStream 类来实现。以下是一个简单的示例代码:
```java
@GET
@Path("/downloadImages")
@Produces("application/zip")
public Response downloadImages() throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
// 添加要压缩的图片文件到 ZipOutputStream 中
// 这里只是一个示例,你需要根据具体的需求来编写代码
zos.close();
baos.close();
byte[] zipBytes = baos.toByteArray();
StreamingOutput stream = output -> {
output.write(zipBytes);
output.flush();
};
return Response
.ok(stream)
.header("Content-Disposition", "attachment; filename=images.zip")
.build();
}
```
在 Vue 前端中,你可以使用 axios 库来获取这个 Zip 文件并进行下载。以下是一个简单的示例代码:
```javascript
axios.get('/api/downloadImages', { responseType: 'blob' })
.then(response => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'images.zip');
document.body.appendChild(link);
link.click();
});
```
这样,当你在 Vue 前端中调用 `/api/downloadImages` 接口时,就会下载一个名为 `images.zip` 的压缩包,其中包含了后端打包的所有图片。
阅读全文