文件的上传对表单的要求
Posted mr-dxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的上传对表单的要求相关的知识,希望对你有一定的参考价值。
<!-- 上传文件:表单要求 1,enctype="multipart/form-data" 2.表单中需要有type="file"的input 3.表单的请求方式一定是POST。即method="post" servlet要求 1.不能使用request.getParameter 2.使用request.getInputStream --> <form action="/file_upload/RegistServlet" method="post" enctype="multipart/form-data"> 用户:<input name="username" type="text"><br> 注册:<input name="password" type="password"><br> 照片:<input name="pic" type="file" ><br> <input type="submit" value="提交"> </form>
//获得复杂类型表单的输入流 InputStream in = request.getInputStream(); //获得输入流的内容 String result = IOUtils.toString(in);
fileUpload的简单应用
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建接受文件的工厂类 DiskFileItemFactory factory = new DiskFileItemFactory(); //创建文件解析对象 ServletFileUpload sfu = new ServletFileUpload(factory); try { //解析request,获得表单中的每一文件(包含普通文本域)项 List<FileItem> list = sfu.parseRequest(request); //遍历每一个文本项 for(FileItem fi : list){ //获得原始文件名 String origFileName = fi.getName(); //获得文本域项的内容 String content = fi.getString(); //获得文本域的名字 String fieldName = fi.getFieldName(); //文本域的内容的类型 String ContentType = fi.getContentType(); //获得文件的大小(以字节为单位) long size = fi.getSize(); //是否是普通文本(普通文本就是非长传文件形式的文本)true代表普通字段,false是文件字段 boolean isFieldForm = fi.isFormField(); System.out.println("原始文件名:"+origFileName); System.out.println("文本项的内容:"+content); System.out.println("文本域的名字:"+fieldName); System.out.println("文本域的内容类型:"+ContentType); System.out.println("文件大小:"+size); System.out.println("是否是普通字段:"+isFieldForm); System.out.println("-----------------------------------"); } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
以上是关于文件的上传对表单的要求的主要内容,如果未能解决你的问题,请参考以下文章