文件下载实现方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lz527657138/article/details/72780741

文件下载实现方法

实现代码:

public void downLoadFile(){
		// 得到要下载文件的文件读取流
		InputStream is = null;
		// 定义文件输入流,用于下载文件
		OutputStream os = null;
		try {
			// 设置字符编码格式
			request.setCharacterEncoding("utf-8");
			// 下载路径
			String path = "D:\\test\\test.doc";//文件存放路径
			// 实例化出要下载文件
			File file = new File(path);

			is = new FileInputStream(file);
			os = response.getOutputStream();
			// 设置响应体属性
			String userAgent = request.getHeader("User-Agent");

			if (userAgent.indexOf("MSIE") >= 1)
				response.setHeader("Content-Disposition", "attachment;filename=\""
						+ java.net.URLEncoder.encode(file.getName(), "UTF-8") + "\"");
			else
				response.addHeader("Content-Disposition", "attachment;filename="
						+ new String(file.getName().getBytes("utf-8"), "iso-8859-1"));

			// 文件头属性设置
			response.addHeader("Content-length", file.length() + "");
			// 响应体内容设置
			response.setContentType("application/octet-stream");
			// 下载文件大小记数器
			int count = 0;
			// 实例化一个byte数组用于写入一次写入文件的大小
			byte[] buffer = new byte[1024 * 1024];
			// 如果读取文件成功
			while ((count = is.read(buffer)) != -1) {
				// 下载文件
				os.write(buffer, 0, count);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (is != null) {
					is.close();
				}
				if (os != null) {
					os.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
文件下载功能,接触了就会明白!

猜你喜欢

转载自blog.csdn.net/lz527657138/article/details/72780741