文件上传和文件下载

原创 2016年08月30日 19:34:30

文件上传:

1.首先,设计前台页面。

要在form表单中加上 enctype="multipart/form-data",指明接收请求的Servlet。

<form action="upload" method="post" enctype="multipart/form-data" >
  <span>上传文件</span><input type="file" name="filename" value="上传">
</form>

2.开发后台的Servlet。

2.1 在上传文件的Servlet上打注解:@MultipartConfig

2.2. 获取前台页面选择的文件名。

原理分析:在firebug上看到的文件上传的请求头为:

Content-Type: multipart/form-data; boundary=---------------------------16593218025140
Content-Length: 34211

-----------------------------16593218025140
Content-Disposition: form-data; name="fname"; filename="session (1).png"
Content-Type: image/png

每个文件都是一个Part,以前台的name属性标记,filename="session (1).png"为上传的文件名。

取出文件名:

request.setCharacterEncoding("utf-8");
Part part = request.getPart("filename");
        //获得上传的文件名
        String header = part.getHeader("Content-Disposition");
        int start = header.lastIndexOf("=");
        int end=header.lastIndexOf("\"");
        String fname= header.substring(start+2, end);
        System.out.println(fname);

如果上传多个文件,Collection<Part> parts = request.getParts(); 遍历parts,依次获取文件名。

2.3 将上传的文件存放在指定的路径下。


String path=request.getRealPath("/");//获取部署到tomcat下的文件路径
         System.out.println(path);
         String filename=path+fname;
         part.write(filename);

文件下载:

1.设置响应的文件类型

response.setContentType("application/octet-stream");

2.Response设置响应头Content-Dispostion,指定要下载的文件和下载方式。

response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));

attachment:表示文件输出流会以附件的方式下载

3.读文件到输入流,写到response对象的输出流中,将数据刷新到磁盘

InputStream in=new FileInputStream(request.getRealPath("/")+fname);
        ServletOutputStream out = response.getOutputStream();
        byte[] b=new byte[1024];
        int len=0;
        while((len=in.read(b))!=-1){
            out.write(b,0,len);
        }
        //将数据刷新到磁盘
        out.flush();

zuixinPHP文件上传和下载示例

  • 2017年11月14日 11:32
  • 1KB
  • 下载

【Struts2】4.文件上传与下载

进行文件上传时,必须将表单的method属性设为post,将enctype属性设为multipart/form-data。 Struts2在进行文件上传操作时,实际上是通过两个步骤实现的: 1) 首...

文件上传及下载

  • 2016年07月22日 13:53
  • 148KB
  • 下载

Python菜鸟成长记——简单实现用户登录和增删改查以及文件上传和下载

这一篇,将会展示用Python语言实现用户信息的增删改查 首先,先搭建项目框架,这个在上一节里有提到,就不再写 然后 ,搭好项目,就开始编码了,首先,先分析,我们要实现用户信息的管理,就先写好界面...

PHP文件上传与下载学习笔记

  • 2015年12月02日 20:15
  • 1.56MB
  • 下载

实现FTP的文件上传与下载

实现FTP的文件上传与下载

文件上传与下载组件

  • 2013年12月10日 17:18
  • 42KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件上传和文件下载
举报原因:
原因补充:

(最多只允许输入30个字)