admin 管理员组文章数量: 887173
一:其实pc端和手机端浏览器下载文件是一样的,以流的方式传输,只需要后端设置好response的参数信息即可。上代码。
public void downLoad(HttpServletRequest request, HttpServletResponse response){
try {
// 设置响应头和客户端保存文件名
response.setCharacterEncoding("utf-8");
//设置文件流下载方式
response.setContentType("application/octet-stream");
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器
} else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
fileName = URLEncoder.encode(fileName, "UTF-8");// IE浏览器
}else if (request.getHeader("User-Agent").toUpperCase().indexOf("CHROME") > 0) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
// 读取目标文件,通过response将目标文件写到客户端
// 读取文件
String url=path;
System.out.println(url);
InputStream in = new FileInputStream(url);
OutputStream out = response.getOutputStream();
// 写文件
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
ps:
首先设置设置响应方式为流:
response.setContentType("application/octet-stream");
其次设置不同浏览器的编码格式
这样在浏览器中请求对应地址即可自动下载文件。
版权声明:本文标题:手机浏览器和pc浏览器下载文件方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1715795434h651633.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论