request,response原生文件上传与下载原理
最近在实习中突然遇到文件上传与下载的问题,struts2和springmvc用多了以后发现原理混了,搞不清request与response获取到的流的功能了,看了几篇文章算是做个笔记。
文件上传流程:
上传时前端form表单中使用post,类型为 multipart/form-data
主要代码:
InputStream is = request.getInputStream();
OutputStream os = new FileOutputStream("服务器保存路径");
byte[] buffer = new byte[1024];
int len = 0;
while((len=is.read(buffer))>0){
os.write(buffer,0,len);
}
文件下载:需要设置响应头为 content-disposition属于mime协议,含义为在浏览器中下载或显示文件
response.setHeader("content-disposition", "attachment;filename=" + filename);//设置响应头
FileInputStream in = new FileInputStream(fileName);
OutputStream out = response.getOutputStream();
byte buffer[] = new byte[4096];
int len = 0;
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}