文件上传与下载

jsp内容

<form action="${pageContext .request. contextPath }/uploadServlet" method= "POST" enctype= "multipart/form-data" >
<!-enctype表明此表单提交的不是普通请求,是multipart-->
文件: <input type= "file" name=' "photo"/> <br>
<input type= "submit" value=" 上传"/>
</form>

servlet内容
@MultipartConfig //表明当前Servlet可以处理Multipart请求,写在servlet上的注解

//dopost内内容
//获取服务端保存上传文件的目录路径
String path = this.getServletContext(). getRealPath("/images");
/从请求中获取Multipart请求中的上传文件“部分”对象
Part part = request . getPart(“photo”);
//获取指定的头部属性
String header = part . getHeader( “Content-Disposition”);
System.out.println(“header =”+ header);
//完成文件上传
part .write(path + " /xxx.txt”);
}

图片附件下载

//获取文件名称
    String filename = request.getParameter("filename");
    System.out.println(filename);
    //使用字节输入流加载文件进内存
    //找到文件路径
    ServletContext servletContext = this.getServletContext();
    String realPath = servletContext.getRealPath("/images/"+filename);

    //文件字节输入流关联
    FileInputStream fis = new FileInputStream(realPath);

    //设置response响应头
    //设置响应头类型
    String mimeType = servletContext.getMimeType(filename);
    response.setHeader("content-type",mimeType);

    //设置响应头打开方式
    response.setHeader("content-disposition","attachment;filename="+filename);//部署附件

    //将输入流的数据写到输出流中
    ServletOutputStream outputStream = response.getOutputStream();
    byte[] buff =new byte[1024 * 8];
    int len =0;
    while ((len=fis.read(buff))!=-1){
        outputStream.write(buff,0,len);
    }
    fis.close();
发布了23 篇原创文章 · 获赞 0 · 访问量 757
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览