本文共 1417 字,大约阅读时间需要 4 分钟。
//getRealPath之后是WebContent后的文件路径String path = this.getServletContext().getRealPath("download/"+filename);
//根据文件名来获取mime类型 String mimeType = this.getServletContext().getMimeType(filename); response.setContentType(mimeType);
response.setHeader("Content-Disposition", "attachment;filename="+filename);
//先将文件名按照ISO8859-1转成二进制位,然后将二进制位通过UTF-8编码进行转换String filename = request.getParameter("filename"); System.out.println(filename); byte[] bytes = filename.getBytes("ISO8859-1"); filename = new String(bytes,"UTF-8"); System.out.println(filename);
//filename 是中文文件名称// 获取客户端信息 String agent = request.getHeader("User-Agent"); // 定义一个变量记录编码之后的名字 String filenameEncoder = ""; if (agent.contains("MSIE")) { // IE编码 filenameEncoder = URLEncoder.encode(filename, "utf-8"); filenameEncoder = filenameEncoder.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐编码 BASE64Encoder base64Encoder = new BASE64Encoder(); filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?="; } else { // 浏览器编码 filenameEncoder = URLEncoder.encode(filename, "utf-8"); } //告诉浏览器是以附件形式下载 response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder);
response.setContentType("text/html;charset=UTF-8");
response.setHeader("refresh", "3;url=#");
转载地址:http://cdaen.baihongyu.com/