钉钉微应用的如何实现文件下载功能(下载我们公司自己服务器的文件),我写的代码如下,在电脑端浏览器测试没有问题,文件正常下载。但是在手机端UC浏览器或者钉钉内测试,代码执行完毕,不报错,但文件却不会下载。请问手机端浏览器的下载功能怎么调用?或者钉钉的下载功能怎么调用?(要求下载我们自己公司服务器上的附件。而不是从盯盘上下载。)希望大家帮忙解决一下,开发进度就卡在附件下载了。
/**
* 下载附件
*/
public ActionForward downloadAttach(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception {
String attId = request.getParameter("attId");
DdHolidayServiceInvoke.Invoke service = DdHolidayServiceInvoke.getInstance(request);
DdHolidayModel model = service.getAttachInfoById(attId);
String attachUrl = request.getSession().getServletContext().getRealPath(model.getAttachUrl());
try {
File ft = new File(attachUrl);
FileInputStream fin = new FileInputStream(ft);
response.reset();// 设置为没有缓存
// 弹出下载窗口
response.setContentType("application/x-download;charset=UTF-8");
response.setHeader("Cache-Control", "");
// response.setContentType("application/x-msdownload");
// 显示下载文件名称
response.setHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode(model.getAttDisName(),"utf-8"));
/* attachment是以附件下载的形式,inline是以线上浏览的形式。当点击“保存”的时候都可以下载,
当点击“打开”的时候attachment是在本地机里打开,inline是在浏览器里打开。 */
OutputStream output = response.getOutputStream();
byte[] buf = new byte[1024];
int r = 0;
while ((r = fin.read(buf, 0, buf.length)) != -1) {
output.write(buf, 0, r);
}
response.getOutputStream().flush();
response.getOutputStream().close();
return null;
} catch (Exception e) {
return null;
}
}
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。