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


Posted in Javascript onAugust 03, 2017

一,单个文件的上传

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 相关文章推荐
jQuery中odd选择器的定义和用法
Dec 23 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
ES6 fetch函数与后台交互实现
Nov 14 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
Aug 08 Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 #Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 #Javascript
浅谈pc端rem字体设置的问题
Aug 03 #Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
Aug 03 #Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 #Javascript
老生常谈js数据类型
Aug 03 #Javascript
详解JavaScript按概率随机生成事件
Aug 02 #Javascript
You might like
PHP获取网站域名和地址的代码
2008/08/17 PHP
PHP 基本语法格式
2009/12/15 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
js实现下一页页码效果
2017/03/07 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python中unittest用法实例
2014/09/25 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python图像常规操作
2017/11/11 Python
Python实现的选择排序算法示例
2017/11/29 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
cf收人广告词大全
2014/03/14 职场文书
终止合同协议书
2014/04/17 职场文书
地质灾害防治方案
2014/05/14 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
vue 实现上传组件
2021/05/31 Vue.js