文件图片的下载

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/util")
public class DownLoadController {

//定义日志对象
private Logger logger = Logger.getLogger(DownLoadController.class);

@RequestMapping("/downFile")
public void downFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws IOException {
	// 根据文件名称|文件路径获取 上下文的路径地址
	String realPath = request.getServletContext().getRealPath(fileName);
	// 创建文件
	File file = new File(realPath);
	// 获取文件的长度
	long fileLength = file.length();
	// 获取文件名称
	String name = file.getName();
	logger.info("文件下载的名称@@@@@@@"+name);
	// 设置响应类型
	response.setHeader("Content-Type", "application/octet-stream");
	// 设置下载的类型的长度
	response.setHeader("Content-Length", String.valueOf(fileLength));
	// 设置以下载方式使用
	response.setHeader("Content-Disposition",
			"attachment;filename*=utf-8'zh_cn'" + URLEncoder.encode(name, "UTF-8"));
	// 获取下载流对象
	ServletOutputStream os = response.getOutputStream();
	// 缓冲输出流
	BufferedOutputStream bos = new BufferedOutputStream(os);
	// 下载文件的缓冲输入流
	BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

	// 定义的缓冲区
	byte buffer[] = new byte[1024];
	// 定义读取的长度
	int len = 0;
	// 循环读取
	while ((len = bis.read(buffer)) != -1) {
		// 写入到响应的流中
		bos.write(buffer, 0, len);
	}
	// 关闭流
	bis.close();
	bos.close();
	os.close();

}

}

前台只需要用标签进行连接,就可以快速的将文件和图片进行下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值