使用springMVC上传文件

使用servlet上传文件我们需要写一堆代码,使用spingMVC框架只要配置几下就好了,话不多说,开写,

  1. 导入两个jar包
    commons-fileupload-1.3.1.jar
    commons-io-2.4.jar

  2. 修改springMVC配置文件,添加下列代码(注意 此bean的id必须为multipartResolver,在springMVC启动后会自动寻找id为multipartResolver的bean)

    <!-- 文件上传 -->
    	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    		<!--默认编码格式-->
    		<property name="defaultEncoding" value="UTF-8"></property>
    		<!--文件的最大值 Bytes为单位  -1为不限制-->
    		<property name="maxUploadSize" value="-1"></property>
    	</bean>
    
  3. 在控制器中添加方法(我是使用的注解方式来实现控制器的,有的人可能学的是使用实现接口的方式, 注意:文件参数必须为MultipartFile类型)

    //文件上传
    	@RequestMapping("fileUpload")
    	public String fileUpload(MultipartFile file) {
    		InputStream inputStream = null;
    		FileOutputStream outputStream = null;
    		try {
    			inputStream = file.getInputStream();
    			String fileName = file.getOriginalFilename();
    			System.out.println("文件名是" + fileName);
    			//注意不要忘了springFile的\\
    			//把文件存放到D盘下的springFile文件夹下
    			outputStream = new FileOutputStream("D:\\springFile\\" + fileName);
    			byte[] bytes = new byte[1024];
    			int i = -1;
    			while ((i = inputStream.read(bytes)) != -1) {
    				outputStream.write(bytes, 0, i);
    			}
    			System.out.println("文件上传成功  大小是:" + file.getSize());
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    			try {
    				inputStream.close();
    				outputStream.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		//返回的页面,这里不管他,等下看控制台输出和文件夹
    		return "ok";
    	}
    
  4. 新建一个html(或者jsp)页面,注意enctype="multipart/form-data"不能少了

    <!-- 文件上传 -->
    <form action="fileUpload" method="POST" enctype="multipart/form-data">
    	<input type="file" name="file"><br>
    	<input type="submit" value="提交">
    </form>
    
  5. 浏览器访问,并选择文件上传 这里我选择了一张jpg图片,然后提交
    在这里插入图片描述

  6. 控制台输出,可以看到控制台成功打印出了文件名和大小,并且springFile文件夹下多出个刚刚上传的文件(红圈的地方不用管,那是我在别的方法中的输出)
    在这里插入图片描述
    在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值