首页 > 解决方案 > 如何在 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 然后在资源管理器上点击它,文件应该在页面上打开。

请提出任何方法来做到这一点

标签: javaresthttpweb

解决方案


你可以像这样用字节数组发回对象,

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;
    }
}

推荐阅读