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 1.4.2发布!主要是性能与API
Feb 25 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
Nov 11 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
jQuery length 和 size()区别总结
Apr 26 jQuery
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
Feb 20 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 Javascript
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
ant design charts 获取后端接口数据展示
May 25 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中adodbzip类实例
2014/12/08 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
js实现文字截断功能
2016/09/14 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
Python常用特殊方法实例总结
2019/03/22 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
电子商务个人自荐信
2013/12/12 职场文书
中考冲刺决心书
2014/03/11 职场文书
保护环境倡议书500字
2014/05/19 职场文书
五好家庭申报材料
2014/12/20 职场文书
保管员岗位职责
2015/02/14 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
Python 发送SMTP邮件的简单教程
2021/06/24 Python