Form表单上传文件(type="file")的使用

 更新时间:2017年08月03日 08:43:37   作者:垂死挣扎的千年虫  
这篇文章主要介绍了Form表单上传文件(type="file")的使用,以及过滤器解决中文乱码问题,需要的朋友可以参考下

一,单个文件的上传

1.html/jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
  String path=request.getContextPath();
  request.setAttribute("path", path);
%>
</head>
<body>
<form action="${path}/FileSer" method="post" enctype="multipart/form-data">
  <table>
    <tr>
      <td>上传文件</td>
      <td> 
        <input type="file" name="fileN" />
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <input type="submit" />
        <input type="reset" />
      </td>
    </tr>
  </table>
  </form>
</body>
</html>

2.过滤器解决中文乱码问题

package com.ser;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Filter01 implements Filter
{
  @Override
  public void destroy()
  {
  }
  @Override
  public void doFilter(ServletRequest arg0, ServletResponse arg1,
      FilterChain arg2) throws IOException, ServletException
  {
    HttpServletRequest request= (HttpServletRequest)arg0;
    HttpServletResponse response=(HttpServletResponse)arg1;
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html charset=utf-8");
    arg2.doFilter(request, response);
  }
  @Override
  public void init(FilterConfig arg0) throws ServletException
  {
  }
}

3.处理html/jsp

package com.ser;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletConfig;
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;
/**
 * Servlet implementation class FileSer
 */
@WebServlet("/FileSer")
@MultipartConfig(location="e://uploadFile",
    fileSizeThreshold=1024*1024*1000,
    maxFileSize=1024*1024*1000,
    maxRequestSize=1024*1024*1024
    )
public class FileSer extends HttpServlet {
  private static final long serialVersionUID = 1L;
  private static final String location="e://uploadFile";
  /**
   * @see HttpServlet#HttpServlet()
   */
  public FileSer() {
  }
  @Override
  public void init(ServletConfig config) throws ServletException
  {
    File file =new File("e://uploadFile");
    if(!file.exists()&& !file.isDirectory())
    {
      file.mkdir();
    }
  }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Part part= request.getPart("fileN");
    String fileType=part.getContentType();
    String fileHeader=part.getHeader("content-disposition");
    //String fileName=part.getName();
    long size=part.getSize();
    System.out.println(part);
    System.out.println(fileType);
    System.out.println(fileHeader);
    //System.out.println(fileName);
    System.out.println(size);
    String filename=fileHeader.substring(fileHeader.indexOf("filename=")+10, fileHeader.lastIndexOf("\""));
    part.write(filename);    
    response.getWriter().print(filename+"上传成功");
  }
}

总结

以上所述是小编给大家介绍的Form表单上传域(type="file")的使用(上传文件),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • javascript实现的文字加密解密

    javascript实现的文字加密解密

    javascript实现的文字加密解密...
    2007-06-06
  • JavaScript解构赋值的实用技巧指南

    JavaScript解构赋值的实用技巧指南

    JavaScript解构赋值为我们提供了很多方便,但是用法比较多,本文就来梳理一下,下面这篇文章主要给大家介绍了关于JavaScript解构赋值的实用技巧指南,需要的朋友可以参考下
    2022-01-01
  • 原生js结合html5制作简易的双色子游戏

    原生js结合html5制作简易的双色子游戏

    这篇文章主要介绍了原生js结合html5制作简易的双色子游戏的代码,是个人学习练手用的,虽然写的不太好,还是分享给大家,有需要的小伙伴可以参考下。
    2015-03-03
  • 微信小程序ibeacon三点定位详解

    微信小程序ibeacon三点定位详解

    这篇文章主要为大家详细介绍了微信小程序ibeacon三点定位的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 解决layer弹出层的内容页点击按钮跳转到新的页面问题

    解决layer弹出层的内容页点击按钮跳转到新的页面问题

    今天小编就为大家分享一篇解决layer弹出层的内容页点击按钮跳转到新的页面问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS中截取数组的几种方法总结

    JS中截取数组的几种方法总结

    在JavaScript中数组是一种常用的数据结构,用于存储多个值,这篇文章主要给大家总结介绍了关于JS中截取数组的几种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • D3.js入门之D3 DataJoin的使用

    D3.js入门之D3 DataJoin的使用

    DataJoin(数据连接)是D3中很重要的一个概念。D3是基于数据操作DOM的js库,DataJoin使我们能够根据现有 HTML 文档中的数据集注入、修改和删除元素。本文主要和大家详细聊聊DataJoin的使用,感兴趣的可以学习一下
    2022-11-11
  • JS实现页面长时间不操作退出到登录页面的示例代码

    JS实现页面长时间不操作退出到登录页面的示例代码

    这篇文章主要介绍了JS实现页面长时间不操作退出到登录页面的示例代码,通过在head标签中引入jquey和页面长时间不操作的js页面,结合实例代码讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • 禁止弹窗中蒙层底部页面跟随滚动的几种方法

    禁止弹窗中蒙层底部页面跟随滚动的几种方法

    我们大家在做弹出层的时候,必不可少的一个元素就是蒙层,也就是遮罩层,当弹出层滚动的时候,蒙层底部的页面一般是要求固定不动的,所以这篇文章就来给大家介绍了如何禁止弹窗中蒙层底部页面跟随滚动的几种方法,需要的朋友可以参考下。
    2017-12-12
  • 浅谈javascript中基本包装类型

    浅谈javascript中基本包装类型

    在JavaScript中,和JAVA类似,也提供了对于基本数据类型的包装类型。例如Number、Boolean、String类型。下面我们就来详细探讨下吧。
    2015-06-06

最新评论