实例如下 :
Защищенная void Dopost (httpservletrequest, httpservletresponse response) бросает ServletException, ioException {String browser = ""; String fileName = "测试 .txt"; try {browser = request.getheader ("пользователь-агент"); if (-1 <browser.indexof ("msie 6.0") || -1 <browser.indexof ("msie 7.0")) {// ie6, ie7 浏览器 response.addheader ("content-disposition", "Приложение; fileName =" + new String (fileName.getBytes (), "isO88599-1");); } else if (-1 <browser.indexof ("msie 8.0")) {// ie8 response.addheader ("content-disposition", "Attactment; filename =" + urlencoder.encode (filename, "UTF-8")); } else if (-1 <browser.indexof ("msie 9.0")) {// ie9 response.addheader ("content-disposition", "Attactment; filename =" + urlencoder.encode (файл, "UTF-8")); } else if (-1 <browser.indexof ("chrome")) {// 谷歌 response.addheader ("content-disposition", "Attactment; filename*= utf-8 ''" + urlencoder.encode (filename, "utf-8")); } else if (-1 <browser.indexof ("safari")) {// 苹果 response.addheader ("content-disposition", "Attactment; filename =" + new String (filename.getbytes (), "iso8859-1")); } else {// 火狐或者其他的浏览器 response.addheader ("content-disposition", "Attachment; filename*= utf-8 ''" + urlencoder.encode (filename, "utf-8")); }} catch (Exception e) {e.printstackTrace (); } InputStream in = new FileInputStream ("d: //test.txt"); // 获取文件输入流 int len = 0; Byte [] buffer = новый байт [1024]; OutputStream out = response.getOutputStream (); while ((len = in.read (buffer))> 0) {out.write (buffer, 0, len); // 将缓冲区的数据输出到客户端浏览器} in.close (); out.flush (); out.close (); }判断各个浏览器 然后进行解码和加码。
以上这篇 java 文件下载设置中文名称的实例 (response.addheader) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。