zoukankan      html  css  js  c++  java
  • SpringMVC文件上传

    • 方式一
     1 /*
     2 
     3      * 通过流的方式上传文件
     4 
     5      * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象
     6 
     7      */
     8 
     9     @RequestMapping("fileUpload")
    10 
    11     public String  fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException {
    12 
    13          
    14 
    15          
    16 
    17         //用来检测程序运行时间
    18 
    19         long  startTime=System.currentTimeMillis();
    20 
    21         System.out.println("fileName:"+file.getOriginalFilename());
    22 
    23          
    24 
    25         try {
    26 
    27             //获取输出流
    28 
    29             OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename());
    30 
    31             //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
    32 
    33             InputStream is=file.getInputStream();
    34 
    35             int temp;
    36 
    37             //一个一个字节的读取并写入
    38 
    39             while((temp=is.read())!=(-1))
    40 
    41             {
    42 
    43                 os.write(temp);
    44 
    45             }
    46 
    47            os.flush();
    48 
    49            os.close();
    50 
    51            is.close();
    52 
    53          
    54 
    55         } catch (FileNotFoundException e) {
    56 
    57             // TODO Auto-generated catch block
    58 
    59             e.printStackTrace();
    60 
    61         }
    62 
    63         long  endTime=System.currentTimeMillis();
    64 
    65         System.out.println("方法一的运行时间:"+String.valueOf(endTime-startTime)+"ms");
    66 
    67         return "/success";  
    68 
    69     }
    • 方式二
     1 /*
     2 
     3      * 采用file.Transto 来保存上传的文件
     4 
     5      */
     6 
     7     @RequestMapping("fileUpload2")
     8 
     9     public String  fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException {
    10 
    11          long  startTime=System.currentTimeMillis();
    12 
    13         System.out.println("fileName:"+file.getOriginalFilename());
    14 
    15         String path="E:/"+new Date().getTime()+file.getOriginalFilename();
    16 
    17          
    18 
    19         File newFile=new File(path);
    20 
    21         //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
    22 
    23         file.transferTo(newFile);
    24 
    25         long  endTime=System.currentTimeMillis();
    26 
    27         System.out.println("方法二的运行时间:"+String.valueOf(endTime-startTime)+"ms");
    28 
    29         return "/success";  
    30 
    31     }
    • 方式三
     1 /*
     2 
     3      *采用spring提供的上传文件的方法
     4 
     5      */
     6 
     7     @RequestMapping("springUpload")
     8 
     9     public String  springUpload(HttpServletRequest request) throws IllegalStateException, IOException
    10 
    11     {
    12 
    13          long  startTime=System.currentTimeMillis();
    14 
    15          //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
    16 
    17         CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
    18 
    19                 request.getSession().getServletContext());
    20 
    21         //检查form中是否有enctype="multipart/form-data"
    22 
    23         if(multipartResolver.isMultipart(request))
    24 
    25         {
    26 
    27             //将request变成多部分request
    28 
    29             MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
    30 
    31            //获取multiRequest 中所有的文件名
    32 
    33             Iterator iter=multiRequest.getFileNames();
    34 
    35              
    36 
    37             while(iter.hasNext())
    38 
    39             {
    40 
    41                 //一次遍历所有文件
    42 
    43                 MultipartFile file=multiRequest.getFile(iter.next().toString());
    44 
    45                 if(file!=null)
    46 
    47                 {
    48 
    49                     String path="E:/springUpload"+file.getOriginalFilename();
    50 
    51                     //上传
    52 
    53                     file.transferTo(new File(path));
    54 
    55                 }
    56 
    57                  
    58 
    59             }
    60 
    61            
    62 
    63         }
    64 
    65         long  endTime=System.currentTimeMillis();
    66 
    67         System.out.println("方法三的运行时间:"+String.valueOf(endTime-startTime)+"ms");
    68 
    69     return "/success";  
    70 
    71     }

    转自:http://www.cnblogs.com/fjsnail/p/3491033.html

  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/yixiu868/p/6365937.html
Copyright © 2011-2022 走看看