Java无法在apache web服务器目录中解压缩文件 - java.util.zip.ZipError:找不到zip END标头

时间:2018-02-14 16:38:01

标签: java apache unzip mod-deflate

我在Java应用程序解压缩apache服务器上的文件时遇到了奇怪的问题。 我有一个apache服务器,其中一些其他应用程序上传zip文件。 例如目录是/ var / www / html / fles

当我现在启动我的java程序解压缩文件时,它总是失败,下面有以下例外。

我还使用Files.probeContentType(file)检查了contentType,令人惊讶的是它返回text/plain而不是application/zip 然后我测试了另一个目录中的代码,例如家庭目录在那里它完美无缺。

所以它似乎与apache配置有关,但我已经检查并禁用了zip文件的gzip压缩: 我不知道我还有什么要做的

我的deflate.conf:

<IfModule mod_deflate.c>
        <IfModule mod_filter.c>
                # these are known to be safe with MSIE 6
                AddOutputFilterByType DEFLATE text/html text/plain text/xml

                # everything else may cause problems with MSIE 6
                AddOutputFilterByType DEFLATE text/css
                AddOutputFilterByType DEFLATE application/x-javascript application/javascript $
                AddOutputFilterByType DEFLATE application/rss+xml
                AddOutputFilterByType DEFLATE application/xml

                SetOutputFilter DEFLATE
                SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png|zip)$" no-gzip
        </IfModule>
</IfModule>

用于创建zip文件系统的java代码:在创建文件系统时已经发生了这些操作:

 private static FileSystem createZipFileSystem(Path zipFilename,
            boolean create)
            throws IOException {
        // convert the filename to a URI

        final URI uri = URI.create("jar:file:" + zipFilename.toUri().getPath());

        final Map<String, String> env = new HashMap<>();
        if (create) {
            env.put("create", "true");
        }
        return FileSystems.newFileSystem(uri, env);
    }

我得到的例外:

  java.util.zip.ZipError: zip END header not found
            at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1605)
            at com.sun.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1021)
            at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1030)
            at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
            at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:117)
            at java.nio.file.FileSystems.newFileSystem(FileSystems.java:326)
            at java.nio.file.FileSystems.newFileSystem(FileSystems.java:276)

1 个答案:

答案 0 :(得分:0)

我发现问题不在于解压缩,但过了一段时间后我意识到我遇到了这里描述的问题: Java 7 Watch Service ENTRY_CREATE triggered before file is written