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 相关文章推荐
Javascript 验证上传图片大小[客户端]
Aug 01 Javascript
JavaScript对象链式操作代码(jquery)
Jul 04 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
Sep 18 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
Sep 02 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求圆周率的简单实现方法
2016/05/30 PHP
php排序算法实例分析
2016/10/17 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
javascript 上下banner替换具体实现
2013/11/14 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
js简易版购物车功能
2017/06/17 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
python修改操作系统时间的方法
2015/05/18 Python
python魔法方法-自定义序列详解
2016/07/21 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
经济信息管理专业大学生求职信
2013/09/27 职场文书
教师产假请假条范文
2014/04/10 职场文书
Java设计模式中的命令模式
2022/04/28 Java/Android
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python