gpt4 book ai didi

java - contentType "application/octet-stream"的模拟mvc下载功能抛出 FileNotFound 错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:33 24 4
gpt4 key购买 nike

我是mockmvc api 的新手。

我正在尝试为我的 Controller 编写单元,其中一种方法执行下载。请找到代码片段:

Controller :

@RequestMapping(value = "/download-template", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public FileSystemResource downloadTemplate(HttpServletRequest request,
HttpServletResponse response) {

logger.info("User ID: " + request.getAttribute("userId")
+ " - POST: /upload/download-template");

String rootDir = config.getBaseFolder();
DownloadUploadTemplateResponse res = uploadService.downloadTemplate(
rootDir, false);

response.setHeader("Content-Disposition",
"attachment; filename=" + res.getFileName());

return new FileSystemResource(res.getTemplateFile());

}

单元测试代码:

@Test
public void testDownloadTemplate(){
DownloadResponse res = new DownloadResponse();
String templateFile = "upload-template.xlsx";
String fileName = System.getProperty("java.io.tmpdir") + templateFile;
res.setFileName(fileName);
res.setTemplateFile(templateFile);
when(config.getBaseFolder()).thenReturn(System.getProperty("java.io.tmpdir"));
when(uploadService.downloadTemplate( System.getProperty("java.io.tmpdir"), false)).thenReturn(res);
//File file = new File(fileName);
FileSystemResource resource = new FileSystemResource(res.getTemplateFile());
try{
ResultActions action = mockMvc.perform(get("/upload/download-template").contentType(APP_OCTET_STREAM_VALUE_UTF8));
action.andExpect(header().string("Content-Disposition",
"attachment; filename=" + res.getFileName()));
action.andExpect(status().isOk());


}catch(Exception e){
e.printStackTrace();
fail();
}
}

下面一行抛出 java.io.FileNotFoundException: upload-template.xlsx (系统找不到指定的文件):ResultActions action = mockMvc.perform(get("/upload/download-template").contentType(APP_OCTET_STREAM_VALUE_UTF8));

请指导我需要在 httprequestbuilder 中添加哪些附加内容来解决此问题。

最佳答案

我的错..错误很明显,enef可以解决这个问题。问题是该文件实际上并不存在:)。因此,通过将文件放在临时文件夹中可以帮助我解决问题。感觉啊啊。

关于java - contentType "application/octet-stream"的模拟mvc下载功能抛出 FileNotFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39740794/

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