上传文件
1,文件转化成流,流再转化成文件
2,解析文件,对应格式的文件解析类,解析文件流,获取文件流中的数据,反之java生成对应的流用对应的文件解析器生成文件
例如excl
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is.getInputStream());
// 创建可写入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("C:/temp/"+is.getOriginalFilename()));
图片:
页面直接<img src="" />
下载:
文件变成流response回页面,
//2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)(包括后缀)
response.setHeader("Content-Disposition", "attachment;fileName="+fileUrl);
@RequestMapping(value = "/downLoad")
public String getObject(@RequestParam("fileUrl") String fileUrl,HttpServletRequest req, HttpServletResponse resp) throws Exception {
InputStream is = new FileInputStream(fileUrl);
HttpServletResponse response = resp;
ServletOutputStream out = null;
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
try {
byte[] buf = new byte[16384];
int bytesRead;
while ((bytesRead = is.read(buf, 0, buf.length)) >= 0) {
swapStream.write(buf, 0,bytesRead);
}
// Close the input stream.
is.close();
byte[] in_b = swapStream.toByteArray();
response.setContentType("multipart/form-data");
//2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
response.setHeader("Content-Disposition", "attachment;fileName="+fileUrl);
out = response.getOutputStream();
out.write(in_b);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
swapStream.close();
if (out != null) {
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (response != null) {
try {
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}