我必须尝试下载文件,这些文件位于我们的系统中。我使用了弹簧启动和角度js 1。 文件已下载,但未打开消息错误解释JPEG图像文件(不是JPEG文件:以0xef 0xbf开头)。 我的示例代码是 -
list = [[1,2,3],[4,5],[6],[0]]
dict = {0: 6, 1: 6, 2: 2, 3: 13, 4: 12, 5: 11, 6: 10}
new_list = map(sum, [[dict[b] for b in i] for i in list]) #for Python 2
new_list = list(map(sum, [[dict[b] for b in i] for i in list])) #for Python 3
从此文件下载但它已损坏意味着我的原始文件大小为18,394字节且response.byteLength = 33496。
更新
相同的代码适用于文本文件,但对于二进制文件,它不起作用。
如何下载正确的文件..
答案 0 :(得分:0)
String filePath =(" /home/ashish/Desktop/CTA.jpg"); 文件路径是我认为的问题,并确保文件存在
@GetMapping("/downloadFile")
public void doima(HttpServletResponse response) throws IOException {
String filePath = ("\\home\\ashish\\Desktop\\CTA.jpg");
File fileName = new File(filePath);
String mimeType = URLConnection.guessContentTypeFromName(fileName.getName());
System.out.println(mimeType);
if (mimeType == null) {
System.out.println("mimetype is not detectable, will take default");
mimeType = "application/octet-stream";
}
response.setContentType(mimeType);
response.setHeader("Content-Disposition", String.format("inline; filename=\"" + fileName.getName() + "\""));
response.setContentLength((int) fileName.length());
InputStream inputStream;
try {
inputStream = new BufferedInputStream(new FileInputStream(fileName));
FileCopyUtils.copy(inputStream, response.getOutputStream());
inputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
CTA.jpg存在于您的资源路径中,然后您可以尝试 如下所示
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("CTA.png");