• 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

  • 相关阅读:
    CSS 会被继承的属性
    List的遍历和删除元素
    java中unicode和中文相互转换
    Hibernate注解方式一对多自关联关系映射
    HQL: Hibernate查询语言
    java replaceall 使用正则表达式替换单等号,不替换其他相关的等号。
    Java 将图片转二进制再将二进制转成图片
    返回上一页并刷新与返回不刷新代码
    Css圆角边框
    jquery mobile
  • 原文地址:https://www.cnblogs.com/yixiu868/p/6365937.html
Copyright © 2020-2023  润新知