java 程序下载文件_java实现小程序下载文件

说一下这个功能,首先导出excel这个功能都做n次了,就简书上我都写了两三篇笔记了,但是这次有点小区别,因为据说小程序直接用输出流的形式导出excel文件会打不开,改名字,乱码等等一系列的问题。

当然,作为一个前端渣咱也不敢说,咱也不敢问。反正说是这个方式不能实现就换成能实现的,经过考虑决定实现的方式变成:

把需要的数据以xls文件的格式写到服务器上,然後把访问路径返回给前端。

前端通过这个路径下载文件,

下载成功后触发回调,告诉我这个文件可以删除了。

其实我这里说了三步,代码就是两个方法:

一个按要求把数据写成文件存在本地,返回文件访问路径。

删除指定名称的文件。

具体的代码实现如下:

将数据以文件的形式写入到本地的某个文件夹下,并且把文件名称返回前端(因为访问路径是死的,所以这里只返回文件名称就行)

@Override

public R excelOut(List list,HttpServletResponse response) {

try {

// excel文件名

String fileName = "excelOut" + no + DateUtils.format(new Date()) + ".xls";

// 创建HSSFWorkbook,别问我list哪来的,我哪知道你数据哪来的

HSSFWorkbook wb = PoiUtil.getHSSFWorkbook(list);

//存到本地

File excelFile = new File("D:\\monitor\\"+fileName);

if(!excelFile.exists()) excelFile.createNewFile();

FileOutputStream fOut = new FileOutputStream(excelFile);

//写内容,xls文件已经可以打开

wb.write(fOut);

//刷新缓冲区

fOut.flush();

//关闭

fOut.close();

return R.ok().put("data", fileName);

} catch (Exception e) {

System.err.println(e);

return R.error();

}

}

删除前端缓存完的文件。因为这个逻辑清楚明了,所以比较简单的逻辑。

@Override

public R delFile(String name) {

File file = new File("D:\\monitor\\"+name);

file.delete();

return R.ok();

}

至此这个功能就实现了,其实一点也不复杂,几乎也没啥难度,新手都会的两个io操作,但是这里记录主要是为了思路。其实说起来也没多难,但是当直接导出excel无法实现,能做的也就是转换思路。有时候实现的方式比实现本身更有价值。

这篇笔记就记到这里,如果稍微帮到你了记得点个喜欢点个关注。也祝大家工作顺顺利利!java技术交流群130031711,欢迎各位踊跃加入!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值