Java文件下载设置

					HttpServletResponse response = PortalUtil
							.getHttpServletResponse(actionResponse);
					byte[] data =null;
				    try{
				    	data = FileUtil.toByteArray2(filePath);  
				    }catch (FileNotFoundException e) {
						// TODO: handle exception
				    	response.setContentType("text/html");
						response.setCharacterEncoding("UTF-8");
				    	response.getWriter().print("<script>alert('文件未找到');window.close();</script>");
				    	return ;
					}

					String fileName = "设备台账批量导入模板.csv";
					fileName = URLEncoder.encode(fileName, "UTF-8");  
				    fileName = new String(fileName.getBytes("utf-8"),"iso8859-1");
				    response.reset();  
				    response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");  
				    response.addHeader("Content-Length", "" + data.length);  
				    response.setContentType("application/octet-stream;charset=UTF-8");  
				    OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());  
				    outputStream.write(data);  
				    outputStream.flush();  
				    outputStream.close();
				    response.flushBuffer();


	public static byte[] toByteArray2(String filePath) throws IOException {

		File f = new File(filePath);
		if (!f.exists()) {
			throw new FileNotFoundException(filePath);
		}

		FileChannel channel = null;
		FileInputStream fs = null;
		try {
			fs = new FileInputStream(f);
			channel = fs.getChannel();
			ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size());
			while ((channel.read(byteBuffer)) > 0) {
				// do nothing
				// System.out.println("reading");
			}
			return byteBuffer.array();
		} catch (IOException e) {
			e.printStackTrace();
			throw e;
		} finally {
			try {
				channel.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				fs.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

你可能感兴趣的:(Java文件下载设置)