java web类的后缀名_javaWeb项目下载xls文件时。报文件格式和扩展名不一致,无法正常打开文件...

一、解决过程

在下载文件功能开发的时候,并没有出现该问题。文件下载正常,而且功能模块也已经上线了。

但是再那几个月之后,突然被告知说xls文件下载出现文件内容乱码。想想都知道肯定是之后的项目改动影响了该功能,很是郁闷。(其实就是我自己改的。。。)

刚开始的时候大家都说是因为编码问题,但是所有的编码都说设置的UTF-8,这些是从来不会改的,不管是项目还是服务器配置。

为了验证不是编码的问题,使用了两个项目进行测试,一个项目中下载正常,另一个项目下载了错误的文件。

为了找到原因,将两个项目中下载功能使用了同一份代码,然后下载文件依然是一个正常一个错误。

然后就查看了编译后的文件,编译后class文件夹下的文件也是一个正常一个错误。由此可见,应该不是业务模块代码的问题了。因为是maven项目,就想会不会是maven编译时使用了不同maven版本、jdk版本或编码导致的。于是将这些也改成了一样的版本,但是问题依然存在。其实我也不知道maven编译时对资源文件进行了什么样的操作。感觉不知道无从下手了,于是我用maven和excel为关键字搜索终于让我找到了出现问题的原因。

参考《Maven 配置filter导致Excel文件损坏的问题》:http://blog.csdn.net/win7system/article/details/55519444

在一次整理多环境的配置文件的时候在pom.xml文件中使用了filtering

src/main/resources

true

dev/*

test/*

prod/*

ucc/*

outnet/*

src/main/resources/${package.environment}

true

src/main/java

**/*.java

**/.svn/*

而且我的xls文件在resources目录下,maven的filtering配置为true对其起了作用,从而导致了xls文件格式错误(内在原因有待深入了解)。

(后来想想,这个解决思路耗费了太多时间,既然一开始就意识到修改全局配置导致错误的可能性更高,应该先从被修改的全局配置先入手。)

二、最终解决方法

将resources目录下的xls文件模板移到项目的静态资源中,再修改下java代码中加载xls文件的路径,问题解决。

c4bcab816bea510b298c1477ec534c25.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值