帮助创建ZIP文件Windows不会阻止

我制作了一个应用程序,它从hg存储库中获取项目的标记版本,并创建一个可下载的ZIP文件,其中包含标记的修订。

这些文件使用CodeIgniter的ZIP编码库在运行Linux的MediaTemple服务器上创建。 一切工作正常...在Mac上。 但是,当我在Windows计算机上下载文件时,存档将被阻止提取。

ZIP包含.html.css.gif.png.js文件,我很确定.js文件是安全的罪魁祸首,但我想知道为什么我可以下载Jcrop jQuery插件(或任何其他示例)作为一个ZIP文件,并提取它没有Windows干扰,即使它明显包含.js文件,但关于我的ZIP文件有一些安全风险。

通常情况下,我只会为我的特殊情况找到一个快速的软件解决方法,但由于计划是销售对这些文件的访问权限,所以快速软件修复或常见问题解答看起来不太方便用户。

任何反馈将不胜感激! 让我知道你是否需要更多信息。

你可以在这里下载一个示例文件。

编辑:

  • 我正在运行Windows XP
  • 我没有运行防病毒程序
  • 警告是: Windows阻止访问这些文件以帮助保护您的计算机
  • 我解封了文件,但是什么也没做
  • 该文件在我的桌面上
  • 编辑2:

  • 我在底部添加了一个示例文件。 或者你可以在这里看到它
  • 我只在XP和Windows 7上使用了默认提取工具。
  • 在Windows上ZIP似乎是空的,我看不到或打开任何文件。
  • 编辑3:

  • 从评论和答案看来,文件名称是由于额外/被添加到进程中的某个地方而造成的问题。 我上传了一个由我的应用程序生成的新的示例下载文件名修复,您可以在此下载。 请让我知道是否解决了这个问题。

  • 确实,领先的'/'是导致zip不能被提取的原因。 我通过编写一个Python脚本来证明这一点,以创建不带绝对文件路径的zip文件的修改版本:

    from zipfile import *
    
    orig = ZipFile('download.zip', 'r')
    fixed = ZipFile('fixed.zip', 'w')
    for fileinfo in orig.infolist():
        fixed.writestr(fileinfo.filename[1:], orig.read(fileinfo.filename)) 
    fixed.close()
    

    (这不会重新压缩这些文件,但它证明它是导致问题的文件名)

    如果您使用的是CodeIgniter zip库的函数read_dir ,那么它必须是使用绝对文件路径的罪魁祸首。 尝试使用PHP递归地遍历目录结构,而不是使用add_data函数。 这使您可以为每个文件使用任意的路径结构,因此您可以编写相对路径。


    当文件使用完整的目录路径而不是相对路径进行压缩时会发生这种情况。 你可以在这里找到这个问题的例子:

    http://community.sharpdevelop.net/forums/p/1416/4532.aspx#4532

    您可能不得不使用另一个zip实用程序或编写自己的。


    这可能有助于提及您使用的是哪个版本的Windows以及您正在获取的确切错误。 它是Windows 7,你试图打开受保护的文件夹中的文件偶然,或者你只是试图在桌面上打开它?

    我不认为这与zip文件的制作方式有关,但我可能是错的。

    链接地址: http://www.djcxy.com/p/57021.html

    上一篇: Help creating ZIP files Windows won't block

    下一篇: I want to email users an encrypted file from a Django Backend Script on Ubuntu