java - 如何在 REST API 响应中将文件作为 URL 传递以直接查看文档
问题描述
我有一个 GET REST API,它接受请求中的 empno 并返回文档作为响应。现在我们将响应作为 ResponseEntity 传递。但是当客户端点击 URL 时,这些文档会从我的 API 调用中下载。下面是我的示例代码:
public class ViewDocController {
@RequestMapping(value = "/{empno}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<byte[]> viewDoc(@PathVariable(value = "empno") String empno)
throws ServletException, IOException {
return baseBiz.viewDoc(documentRequestBody);
}
}
但是我们希望当我们点击 API URL 时,文件应该在浏览器中打开,而不是下载。例如,如果在我的 api url 中是: http://localhost:8080/rest/services/viewDoc/12345 然后在资源管理器上点击它,文件应该在页面上打开。
请提出任何方法来做到这一点
解决方案
你可以像这样用字节数组发回对象,
public class ExistingFileDAO extends BaseMessage {
String fileName;
byte[] targetArray;
public ExistingFileDAO(String fileName, byte[] targetArray) {
this.fileName = fileName;
this.targetArray = targetArray;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public byte[] getTargetArray() {
return targetArray;
}
public void setTargetArray(byte[] targetArray) {
this.targetArray = targetArray;
}
}
推荐阅读
- azure-functions - Azure Serverless Java REST API 不共享单例对象
- angular - 在模板中显示 Pkg 版本
- java - Java Kafka 控制台消费者堆空间不足
- java - 获取 Gradle 插件中的依赖项列表
- xcode - 在 Xcode 中通过 Terminal 和 Github 包链接设置 Firebase 有什么区别?
- python - 转换嵌套字典和展平合并
- xcode - 如何避免自定义 Xcode 仪器的“不支持...平台”错误
- retrofit2 - 在 Retrofit 2 中动态设置 URL 路径
- hide - PowerApps - 隐藏/显示数据卡
- sql - 如何在 ASP.NET 的下拉列表中显示更新表中的值