Re钉钉微应用的如何实现文件下载功能(下载我们公司自己服务器的文件
改了一行代码,改为
response.setContentType("application/octet-stream");
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/txt;charset=UTF-8");
response.setHeader("Cache-Control", "");
response.setContentType("application/ octet-stream");
// 显示下载文件名称
response.setHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode(model.getAttDisName(),"utf-8"));
/* 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;
}
}