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提交多个表单的小例子
Jun 30 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
vue-cli配置文件——config篇
Jan 04 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
微信小程序—setTimeOut定时器的问题及解决
Jul 26 Javascript
JS实现打砖块游戏
Feb 14 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 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 和 COM
2006/10/09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php面向对象的方法重载两种版本比较
2008/09/08 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
JS作用域链详解
2017/06/26 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
python单例模式实例分析
2015/04/08 Python
利用python代码写的12306订票代码
2015/12/20 Python
python中私有函数调用方法解密
2016/04/29 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python远程连接MySQL数据库
2019/04/19 Python
Python 音频生成器的实现示例
2019/12/24 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
高三政治教学反思
2014/02/06 职场文书
结婚周年感言
2014/02/24 职场文书
优秀经理获奖感言
2014/03/04 职场文书
采购部年度工作总结
2015/08/13 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android