kekingcn / kkFileView

Universal File Online Preview Project based on Spring-Boot
https://kkview.cn
10.73k stars 2.73k forks source link

对压缩文件(zip,rar,7z,tar), 以及文件名后缀大小写的支持存在一定问题。 #216

Open netshowers opened 3 years ago

netshowers commented 3 years ago

测试环境 OS: Ubuntu 18.04/Windows 10 Home KKFileView version : 3.3.1

遇到的问题 1 测试文件格式 zip, rar, 7z, tar 如果压缩文件本身目录结构比较复杂一点,类似里面有多个子文件夹,文件或者文件夹名字比较短,类似0,1,2,3这种, 用最新版本来预览会无法读取, 而采用上一个版本(2.2.1)就能打开zip格式的压缩文件,但是预览的目录结构与压缩文件本身的目录结构无法匹配。

遇到的问题 2 测试文件格式 123.PDF, 345.JPG, 456.Docx等等 如果文件名后缀全大写或者部分大写,在Ubuntu下面就无法读取或者打开,特别是在cache.enable = true的情况下,目前如果禁用cache似乎能解决问题,猜测是在通过http流读取文件并缓存到本地之后,再次预览同一个文件会从本地缓存获取,而获取的过程中没有考虑文件名后缀大小写文件,始终采取全小写的后缀名去获取缓存文件。在windows环境下可以读取到但是在ubuntu环境下就无法正常工作。

wen2006953 commented 3 years ago

补充几点,版本:docker pull keking/kkfileview:v3.3.1 1、压缩文件本来是支持的,像war,jar,apk等都是用zip方式压的,应该自动支持。现在是不支持。 2、压缩文件预览没有权限,应该是没有带上cookie,不同浏览器没有登陆不能访问文件那是正常的,同浏览器可以访问该文件,照理应该能预览才对。

klboke commented 3 years ago

jar 应该支持啊,测试也是支持的

netshowers commented 3 years ago

jar如果目录结构复杂一些就无法正常预览,比如jar文件里面包含多个文件夹以及子文件,利用ZipFile的API就无法正常解析了。其实不光是jar,上述涉及到的压缩文件类型只要目录结构复杂一点,包括子文件包含同样名字的,预览的目录结构显示就会出现偏差了