代码如下:
String processName = modelData.getName() + ".bpmn20.xml";
String filename = processName;
// 告诉浏览器下载的方式以及一些设置
// 解决文件名乱码问题,获取浏览器类型,转换对应文件名编码格式,IE要求文件名必须是utf-8, firefo要求是iso-8859-1编码
String agent = request.getHeader("user-agent");
if (agent.contains("FireFox")) {
filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");
} else {
filename = URLEncoder.encode(filename, "UTF-8");
}
// 设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("application/multipart/form-data");//运行时后台会报错,但不影响下载,可根据所需要的下载类型调整"application/multipart/form-data"
// 设置一个响应头,无论是否被浏览器解析,都下载
response.setHeader("Content-Disposition", "attachment;filename=" + filename);
// 将要下载的文件内容通过输出流写到浏览器
ServletOutputStream outputStream = response.getOutputStream();
// xmlString---xml文件内容转成的字符串
outputStream.write(xmlString.getBytes());
outputStream.flush();
outputStream.close();