使用fileupload要添加以下包

例子1

后台程序

    @RequestMapping(value="demo1")
    public String demo1(HttpServletRequest request,HttpServletResponse response){
        
        return "/demo1";
    }
    
    @RequestMapping(value="demo1U",method=RequestMethod.POST)
    public String demo1U(HttpServletRequest request,HttpServletResponse response) throws FileUploadException{
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);//检查输入请求是否为multipart表单数据。
        if (isMultipart == true) {
           FileItemFactory factory = new DiskFileItemFactory();//为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。
           ServletFileUpload upload = new ServletFileUpload(factory);
           List<FileItem> items = upload.parseRequest(request);
           Iterator<FileItem> itr = items.iterator();
           while (itr.hasNext()) {
               FileItem item = (FileItem) itr.next();
               //检查当前项目是普通表单项目还是上传文件。
               if (item.isFormField()) {//如果是普通表单项目,显示表单内容。
                   String fieldName = item.getFieldName();
                   if (fieldName.equals("name")) //对应demo1.html中type="text" name="name"
                   System.out.print("the field name is" + item.getString());//显示表单内容。
               }
               
               else {//如果是上传文件,显示文件名。
                   System.out.print("the upload file name is" + item.getName());
               }
           }
        } else {
            System.out.print("the enctype must be multipart/form-data");
        }      
        return null;
    }

前台jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>demo1</title>
  </head>
 
  <body>
       //必须是multipart的表单数据。
    <form name="myform" action="<%=basePath%>/upload/demo1U" method="post" enctype="multipart/form-data">
       Your name: <br>
       <input type="text" name="name" size="15"><br>
       File:<br>
       <input type="file" name="myfile"><br>
       <br>
       <input type="submit" name="submit" value="Commit">
    </form> <br>
  </body>
</html>


例子2

后台程序

    @RequestMapping(value="demo2")
    public String demo2(HttpServletRequest request,HttpServletResponse response){
        
        return "/demo2";
    }
    
    @RequestMapping(value="demo2U",method=RequestMethod.POST)
    public String demo2U(HttpServletRequest request,HttpServletResponse response) throws FileUploadException{
    
        String uploadPath="D:\\temp";
          boolean isMultipart = ServletFileUpload.isMultipartContent(request);
          if(isMultipart==true){
              try{
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upload = new ServletFileUpload(factory);
                List<FileItem> items = upload.parseRequest(request);//得到所有的文件
               Iterator<FileItem> itr = items.iterator();
                while(itr.hasNext()){//依次处理每个文件
                 FileItem item=(FileItem)itr.next();
                 String fileName=item.getName();//获得文件名,包括路径
                 if(fileName!=null){
                     File fullFile=new File(item.getName());
                     File savedFile=new File(uploadPath,fullFile.getName());
                     item.write(savedFile);
                 }
                }
                System.out.print("upload succeed");
              }
              catch(Exception e){
                 e.printStackTrace();
              }
          }
          else{
              System.out.println("the enctype must be multipart/form-data");
          }
        
        
        return null;
    }

前台jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>demo2</title>
  </head>
 
  <body>
    <form name="myform" action="<%=basePath%>/upload/demo2U" method="post" enctype="multipart/form-data">
       File1:<br>
       <input type="file" name="myfile"><br>
       File2:<br>
       <input type="file" name="myfile"><br>
       <br>
       <input type="submit" name="submit" value="Commit">
    </form>
  </body>
</html>


例子3

后台程序

    @RequestMapping(value="demo3")
    public String demo3(HttpServletRequest request,HttpServletResponse response){
        
        return "/demo3";
    }
    
    
    @RequestMapping(value="demo3U",method=RequestMethod.POST)
    public String demo3U(HttpServletRequest request,HttpServletResponse response) throws FileUploadException{
    
        File uploadPath = new File("D:\\temp");//上传文件目录
        if (!uploadPath.exists()) {
           uploadPath.mkdirs();
        }
        // 临时文件目录
        File tempPathFile = new File("d:\\temp\\buffer\\");
        if (!tempPathFile.exists()) {
           tempPathFile.mkdirs();
        }
        try {
           DiskFileItemFactory factory = new DiskFileItemFactory();
           factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
           factory.setRepository(tempPathFile);//设置缓冲区目
           ServletFileUpload upload = new ServletFileUpload(factory);    
           upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
     
           List<FileItem> items = upload.parseRequest(request);//得到所有的文件
           Iterator<FileItem> i = items.iterator();
           while (i.hasNext()) {
               FileItem fi = (FileItem) i.next();           
               String fileName = fi.getName();
               if (fileName != null) {
           File fullFile = new File(fi.getName());
           File savedFile = new File(uploadPath, fullFile
                  .getName());
           fi.write(savedFile);
               }
           }
           System.out.print("upload succeed");
        } catch (Exception e) {
           e.printStackTrace();
        }
        return null;
    }

前台jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>demo3</title>
      </head>
 
  <body>
       //必须是multipart的表单数据。
    <form name="myform" action="<%=basePath%>/upload/complete" method="post" enctype="multipart/form-data">
       File:<br>
       <input type="file" name="myfile"><br>
       <br>
       <input type="submit" name="submit" value="Commit">
    </form>
  </body>
</html>


例子4 通用的例子(待以后修改)

后台程序

    @RequestMapping(value="complete",method=RequestMethod.POST)
    public String complete(HttpServletRequest request,HttpServletResponse response) throws FileUploadException{
    
        File uploadPath = new File("D:\\temp");//上传文件目录
        if (!uploadPath.exists()) {
           uploadPath.mkdirs();
        }
        // 临时文件目录
        File tempPathFile = new File("d:\\temp\\buffer\\");
        if (!tempPathFile.exists()) {
           tempPathFile.mkdirs();
        }
        try {
           DiskFileItemFactory factory = new DiskFileItemFactory();
           factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
           factory.setRepository(tempPathFile);//设置缓冲区目
           ServletFileUpload upload = new ServletFileUpload(factory);    
           upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
     
           List<FileItem> items = upload.parseRequest(request);//得到所有的文件
           Iterator<FileItem> i = items.iterator();
           while (i.hasNext()) {
               FileItem fi = (FileItem) i.next();
               if(fi.isFormField()){//如果是普通的表单字段
                   
               }else{//如果是上传文件,显示文件名。
                   String fileName = fi.getName();
                   if (fileName != null) {                     
                       //检查文件后缀格式  
                   String fileEnd = fileName.substring(fileName.lastIndexOf(".")+1).toLowerCase();  
                   
                   List<String> extList=new ArrayList<String>();
                   extList.add("sql");
                   extList.add("txt");
                     if(extList.contains(fileEnd)){
                         File fullFile = new File(fi.getName());
                         File savedFile = new File(uploadPath, fullFile.getName());
                         fi.write(savedFile);
                     }else{
                         System.out.print("ext error");
                     }               
                   }
               }           
           }
           System.out.print("upload succeed");
        } catch (Exception e) {
           e.printStackTrace();
        }
        return null;
    }

java 上传1(使用java组件fileupload)的更多相关文章

  1. 在C#客户端用HTTP上传文件到Java服务器

    在C#客户端用HTTP上传文件到Java服务器  来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...

  2. java上传excel文件及解析

      java上传excel文件及解析 CreateTime--2018年3月5日16:25:14 Author:Marydon 一.准备工作 1.1 文件上传插件:swfupload: 1.2 文件上 ...

  3. edtftpj让Java上传FTP文件支持断点续传

    在用Java实现FTP上传文件功能时,特别是上传大文件的时候,可以需要这样的功能:程序在上传的过程中意外终止了,文件传了一大半,想从断掉了地方继续传:或者想做类似迅雷下载类似的功能,文件太大,今天传一 ...

  4. Java上传文件FTP服务器代码

    1. 在实际的应用重,通常是通过程序来进行文件的上传. 2. 实现java上传文件到ftp服务器中 新建maven项目 添加依赖 <dependency> <groupId>c ...

  5. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  6. java 上传文件到 ftp 服务器

    1.  java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...

  7. 根据短链生成二维码并上传七牛云(Java)

    通过短链生成二维码并上传七牛云(Java) 前言 网上这种帖子其实也是很多,大部分搜出来的是CSDN的,然后点进去一看都几乎一样:所以这次给个自己实践的例子记录. 这次也是通过搜索得到的一部分能实现这 ...

  8. java上传组件FileUpload

    如果表单中有文件要上传,也就是有<input type="file" name="name"/> 就需要在form标签中添加enctype=&quo ...

  9. java 上传2(使用java组件fileupload和uploadify)

    项目关键包和插件

随机推荐

  1. 采用Spring AOP+Log4j记录项目日志

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6567672.html 项目日志记录是项目开发.运营必不可少的内容,有了它可以对系统有整体的把控,出现任何问题 ...

  2. CentOS下安装node

    下载 wget https://nodejs.org/dist/v7.7.4/node-v7.7.4-linux-x64.tar.gz 解压 tar -zxvf node-v7.7.4-linux-x ...

  3. Influxdb1.2.2安装_Windows

    一.文件准备 1.1 文件名称 influxdb-1.2.2_windows_amd64.zip 1.2 下载地址 https://portal.influxdata.com/downloads [注 ...

  4. CSS 画三角形、圆

    <div class="square"></div> <style> .square { height: 0px; width: 0px; bo ...

  5. [原]使用MessageAnalyzer实时查看远端日志

    1. 下载安装Message Analyzer 从Message Analyzer下载链接下载,安装过程从略. 说明:关于Message Analyzer的视频教程,可以在打开后的主界面上看到. 2. ...

  6. php生成器使用总结

    一般我们在迭代一组数据的时候,需要创建一个数据,如果数组很大,则会消耗很大性能,甚至造成内存不足抛出error比如: //Fatal error: Allowed memory size of 134 ...

  7. vue实现简单表格组件

    本来想这一周做一个关于vuex的总结的,但是由于朋友反应说还不知道如何用vue去写一个组件,所以在此写写一篇文章来说明下如何去写vue页面或者组件.vue的核心思想就是组件,什么是组件呢?按照我的理解 ...

  8. java多线程基本概述(三)——同步方法

    非线程安全其实是在多个线程对同一个对象实例的变量进行并发访问的时候发生,产生的后果就是脏读,也就是取到的数据是修改过的.而线程安全就是获得的实例变量的值是经过同步处理的,从而不会出现脏读现象. 1.1 ...

  9. 初学strurs基础

    Struts2基础学习总结 Struts 2是在WebWork2基础发展而来的. 注意:struts 2和struts 1在代码风格上几乎不一样. Struts 2 相比Struts 1的优点: 1. ...

  10. CF #311 D. Vitaly and Cycle 加最少边形成奇圈

    题目链接:http://codeforces.com/problemset/problem/557/D 大意 给出一个未必联通的无向图(点数至少为3),问最少加多少边可以形成一个奇圈,以及这样做的方案 ...