springmvc文件的上传于下载

6 篇文章 0 订阅
3 篇文章 0 订阅

首先是需要配置到springmvc.xml中的配置

<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="UTF-8"></property>
	<property name="maxUploadSize" value="5000000"></property>
</bean>

然后是在controller中的代码:

package com.qq.controller;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class FileController {
	@RequestMapping("qq")
	public String uploadFile(String title,MultipartFile ff) throws Exception {
		//System.out.println(title);
		//得到的是一个文本文件,如果文件为空,就不需要上传
		if(ff.getSize() > 0) {
			String filename = ff.getOriginalFilename();
			System.out.println(filename+"文件名");
			//文件上传的位置
			String path = "E:\\file\\";
			path += filename;
			//文件路径包装成一个file对象
			File newfile = new File(path);
			//把文件传入到对象中
			ff.transferTo(newfile);
		}
		return "show";
	}


/**
 * Spring
 * 
 * 通过设置
 * @param name
 * @return
 * @throws Exception
 */

@RequestMapping("downLoad")
public ResponseEntity<byte[]> download(String name) throws Exception{
	String path = "E:\\file\\";
	path += name;
	File file = new File(path);
	
	//http相应头的操作
	HttpHeaders headers = new HttpHeaders();
	String newname = new String(name.getBytes("UTF-8"),"ISO-8859-1");
	headers.setContentDispositionFormData("attachment", newname);;
	//设置下载方式
	headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
	return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值