文件下载有好多种方式,通过返回值,通过servlet的返回输出流等,我们这里使用spring的controller简单实现如何下载文件,并从url传入参数。 这是controller的简单实现,使用aspose.cells解析excel模板,并保存到输出流就可以下载了。
/**
* 下载文件,参数可以通过url传入
*/
@RequestMapping(value="/download/{fileName}.xls")
public void download(@RequestParam(required=false,value="arg1") String arg1,HttpServletRequest request, HttpServletResponse response){
//解析excel模板
WorkbookDesigner designer = new WorkbookDesigner();
String template_file_path = "d:/aspose/cell_sample.xls";
Workbook wb = new Workbook(template_file_path);
designer.setWorkbook(wb);
//解析数据
//designer.setDataSource("list", new MapData(getHashMapList()));//map list作为数据源
//designer.process();//全自动赋值
//文件输出到 输出流
wb.save(response.getOutputStream(), SaveFormat.EXCEL_97_TO_2003);
}
在前端的脚本中直接使用url下载代码如下
window.location = escape("/download/myfile.xls?arg1=val1");
以上简易实现文件下载,注意如果是url传入中文的话,tomcat必须配置url的编码模式为utf-8,要不然的话在后台取到的参数会可能是乱码的。