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 表格工具集
Apr 25 Javascript
jquery 查找新建元素代码
Jul 06 Javascript
js加入收藏夹代码(兼容ie/ff/op)
May 16 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
使用Angular.js开发的注意事项
Oct 19 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 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下将XML转换为数组
2010/01/01 PHP
PHP 中文处理技巧
2010/04/25 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
yii操作cookie实例简介
2014/07/09 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
对python sklearn one-hot编码详解
2018/07/10 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
科研课题实施方案
2014/03/18 职场文书
农村文化活动总结
2014/08/28 职场文书
公司辞职信模板
2015/05/13 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
alibaba seata服务端具体实现
2022/02/24 Java/Android