数据库中某列存储了文件名,且所有文件均位于同一目录。预览报表时,希望通过点击单元格直接下载对应文件。可通过FineReport报表控件实现该功能,具体操作方式如下所述。
1、 示例
2、 假设已有所示的模板文件。
3、 点击文件名,即可弹出下载对话框,获取对应路径中的文件。
4、 自选下载模式
5、 假设所有文件均位于D盘目录,接下来查看完整的JSP代码实现。
6、 获取请求中的参数 filename,将其赋值给字符串变量 filename。该参数名称需与超链接传递时使用的参数名称保持一致,以确保能够正确接收并处理前端传来的文件名信息。
7、 将下载文件的路径和名称设置为 D 盘根目录下的指定文件名。
8、 设置响应头以指定下载文件的名称,通过将文件名从UTF-8编码转换为ISO8859-1编码,避免中文字符在下载过程中出现乱码问题,确保浏览器能正确识别并显示文件名,提升用户体验。此方法常用于处理含有非英文字符的文件下载场景。
9、 try
10、 {
11、 {
12、 }
13、 }
14、 {
15、 }
16、 {
17、 {
18、 }
19、 {
20、 }
21、 }
22、 %>
23、 将该文件命名为download.jsp,并保存至Tomcat服务器中WebReport应用的目录下。
24、 设置超链接
25、 在C3单元格上点击鼠标右键,选择超链接选项,添加一个网页地址:/WebReport/download.jsp,同时设置参数filename,其值通过公式=C3获取,实现动态传参,具体操作界面参考附图所示。
26、 查看效果
评论
更多评论