gpt4 book ai didi

java - REST 服务发送损坏的文件

转载 作者:行者123 更新时间:2023-12-01 10:48:22 30 4
gpt4 key购买 nike

我正在尝试创建一个 java REST 服务来下载 Word 文档。文件已下载,但内容只是垃圾十六进制,而不是实际的 Word 文档内容。我的示例代码如下。我缺少什么?之前和之后的文件具有相同的字节数。

@SuppressWarnings("resource")
@RequestMapping(value = "get/testdoc", method=RequestMethod.GET, produces="application/octet-stream)
public @ResponseBody ResponseEntity<byte[]> getTestDoc() throws Throwable{

File doc = new File("C:\\temp\\file.doc");

InputStream is = new FileInputStream(doc);
byte[] bytes = IOUtils.toByteArray(is);

HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
responseHeaders.set("Content-Disposition" , "Attachment; filename=file.doc");
responseHeaders.setContentLength(ProposalDoc.length());



return new ResponseEntity<byte[]>(bytes, responseHeaders, HttpStatus.OK);
}

最佳答案

我认为有两个问题:

<强>1。标题长度:

我认为至少有一行非常奇怪的行:

responseHeaders.setContentLength(ProposalDoc.length());

我想,应该是:

responseHeaders.setContentLength(bytes.length);

<强>2。 @ResponseBody注释

如果您使用返回类型ResponseEntity<byte[]> ,那么您不得添加 @ResponseBody .

@RequestMapping(value = "get/testdoc", method=RequestMethod.GET)
public ResponseEntity<byte[]> getTestDoc() throws Throwable{
...
}

关于java - REST 服务发送损坏的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052553/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com