enctype=“multipart/form-data”,Servlet获取参数 原创 2017年03月21日 18:46:44 标签:enctype /servlet文件上传 2094 HTML表

来源:互联网 发布:java ftpclient引包 编辑:程序博客网 时间:2024/06/02 21:11
enctype=“multipart/form-data”,Servlet获取参数原创 2017年03月21日 18:46:44 标签:enctype /servlet文件上传 2094HTML表单enctype属性是设置表单传输的MIME编码,共有三个值可选:  ①application/x-www-form-urlencoded (默认值,不能用于文件上传)  ②multipart/form-data (指定传输数据为二进制类型,比如图片、mp3、文件)  ③text/plain (纯文本传输,发送邮件,接收时不会出现乱码)UploadDemo.jsp[html] view plain copy<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>    <head>      <title>文件上传</title>      <meta http-equiv="pragma" content="no-cache">      <meta http-equiv="cache-control" content="no-cache">      <meta http-equiv="expires" content="0">    </head>    <body>      <form action="${pageContext.request.contextPath}/servlet/ServletUploadDemo" method="post" enctype="multipart/form-data">          name:<input type="text" name="name"/><br/>          age:<input type="text" name="age"><br/>          file:<input type="file" name="file"/><br/>          <input type="submit" value="上传"/>      </form>    </body>  </html>  ServletUploadDemo.java[java] view plain copypackage com.text;    import java.io.IOException;  import javax.servlet.ServletException;  import javax.servlet.annotation.MultipartConfig;  import javax.servlet.annotation.WebServlet;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.Part;    //Servlet3.0+可以不用web.xml文件,改用注解方式映射。  //文件上传已经是Servlet3.0+必有的。  //Part:接口。代表表单中的每一项。相当于FileItem  @WebServlet("/servlet/ServletUploadDemo")    @MultipartConfig//**加上这个注解,反射该Servlet时才知道处理的是文件上传    public class ServletUploadDemo extends HttpServlet {      public void doGet(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          //普通参数还可以照常取出(@MultipartConfig不能忘)          String name = request.getParameter("name");          String age = request.getParameter("age");          //特殊参数用part取          Part part = request.getPart("file");  //      System.out.println(name+"--"+age);  //      System.out.println(part);            //获取文件名          String contentDisposition = part.getHeader("Content-Disposition");          System.out.println(contentDisposition);// form-data; name="file"; filename="User.sql"          int filenameIndex = contentDisposition.indexOf("filename=");          String filename = contentDisposition.substring(filenameIndex+10, contentDisposition.length()-1);            part.write(getServletContext().getRealPath("/files")+"/"+filename);      }        public void doPost(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          doGet(request, response);      }    }  

阅读全文
0 0
原创粉丝点击