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+thickbox仿校内登录注册框
Jun 07 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
Jan 31 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
pace.js页面加载进度条插件
Sep 29 Javascript
jQuery实现图片局部放大镜效果
Mar 17 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
Feb 09 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
Mar 28 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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
模仿OSO的论坛(四)
2006/10/09 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
prototype1.4中文手册
2006/09/22 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
详解React 条件渲染
2020/07/08 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Django如何实现防止XSS攻击
2020/10/13 Python
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
写好自荐信的要点
2013/11/06 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
中专自我鉴定
2014/02/05 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
小学校本培训方案
2014/06/06 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
感谢信怎么写
2015/01/21 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015党建工作简报
2015/07/21 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python