springMvc文件上传

在spring配置文件或者spring mvc配置文件中:


<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"/>
    <!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->

    <property name="maxUploadSize" value="11240000"/>

    <property name="maxInMemorySize" value="4096" />

</bean>

在controller中用MultipartFile接收,接收的几种方式

第一种:

@RequestMapping("regist")
@ResponseBody
public SimpleBoolReturnObj registUser(@RequestParam("file") MultipartFile file,String info){

//获取输出流
            OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename());
            //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
            InputStream is=file.getInputStream();
            int temp;
            //一个一个字节的读取并写入
            while((temp=is.read())!=(-1))
            {
                os.write(temp);
            }
           os.flush();
           os.close();
           is.close();
}

第二种(依然是解析MultipartFile file):


File newFile=new File(path);

//通过CommonsMultipartFile的方法直接写文件(注意这个时候)
file.transferTo(newFile);

第三种:

@RequestMapping("springUpload")

     public String  springUpload(HttpServletRequest request) throws IllegalStateException, IOException
     {
          long  startTime=System.currentTimeMillis();
          //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
         CommonsMultipartResolver multipartResolver= new CommonsMultipartResolver(
                 request.getSession().getServletContext());
         //检查form中是否有enctype="multipart/form-data"
         if (multipartResolver.isMultipart(request))
         {
             //将request变成多部分request
             MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
            //获取multiRequest 中所有的文件名
             Iterator iter=multiRequest.getFileNames();
             
             while (iter.hasNext())
             {
                 //一次遍历所有文件
                 MultipartFile file=multiRequest.getFile(iter.next().toString());
                 if (file!= null )
                 {
                     String path= "E:/springUpload" +file.getOriginalFilename();
                     //上传
                     file.transferTo( new File(path));
                 }
                 
             }
           
         }
         long  endTime=System.currentTimeMillis();
         System.out.println( "方法三的运行时间:" +String.valueOf(endTime-startTime)+ "ms" );
     return "/success"
     }



可以多文件:

@RequestMapping("regist")
@ResponseBody
public SimpleBoolReturnObj registUser(@RequestParam("file") MultipartFile[] files,String info){



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值