2010-07-12 56 views
2

我做了一個應用程序,需要從汞柱庫項目的標記版本,並創建了標記修訂的可下載的ZIP文件。幫助創建ZIP文件時,Windows將不會阻止

的文件正在使用CodeIgniter的ZIP編碼庫運行Linux的MEDIATEMPLE服務器上創建的。一切工作正常...在Mac上。但是,當我在Windows計算機上下載文件時,存檔將被阻止提取。

的ZIP包含.html.css.gif.png.js文件,我敢肯定的.js文件是安全的罪魁禍首,但我想知道爲什麼我可以下載Jcrop jQuery plugin(或任何其他的例子)作爲一個ZIP文件和提取它沒有Windows干擾,即使它明顯包含.js文件,但有關我的ZIP文件是安全風險。

通常情況下,我只想找到我的特定情況下的快速軟件解決方法,但由於該計劃是出售訪問這些文件,快速的軟件修復或回答問題似乎不是很人性化。

任何反饋將不勝感激!讓我知道你是否需要更多信息。

你可以下載一個示例文件here

編輯:

  • 我運行Windows XP
  • 我沒有運行反病毒
  • 的警告是:Windows已經阻止訪問這些文件,以幫助保護您的計算機
  • 我已解封文件,但是什麼也沒做
  • 該文件在我的桌面上

編輯2:

  • 我在底部加入的示例文件。或者你可以看到它here
  • 我只使用XP和Windows 7上的默認提取工具。
  • ZIP似乎在Windows上是空的,我看不到或打開任何文件。

編輯3:

  • 從意見和答案,看來,文件名分別的問題,由於額外的/在這個過程中某處被添加。我上傳了我的應用程序生成的new example download,文件名修復,您可以下載here。請讓我知道是否解決了這個問題。
+0

您可能需要右鍵單擊Zip文件,然後轉到屬性並選擇「取消阻止」。根據計算機上的下載/安全設置,默認情況下會下載一些文件。 – Nate 2010-07-12 21:32:33

+1

你可以上傳一個示例zip文件嗎?或者告訴我們他們被阻止的方式(防病毒軟件,如Avast?) – 2010-07-12 21:33:16

+0

我已經完成了'解鎖'的事情,但這並不重要。 Windows一直告訴我它被阻止。另外...我沒有運行任何防病毒軟件,不會隨Windows XP一起提供。 – bschaeffer 2010-07-12 21:37:53

回答

4

的確,領先的'/'是導致zip不能被提取的原因。我已經通過編寫Python腳本證明了這一點來創建壓縮文件的修改版本沒有絕對的文件路徑:

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函數。這使您可以爲每個文件使用任意的路徑結構,因此您可以編寫相對路徑。

+0

我添加了一個固定的示例下載...你是否讓我知道如果解決了這個問題。它應該很容易由一個普通的老用戶提取。我會,但我沒有在週末訪問電腦:) – bschaeffer 2010-07-18 18:04:01

+0

是的。這在我的機器上運行。 – 2010-07-18 18:08:49

0

它可能有助於提及您正在使用哪個版本的Windows以及您正在獲取的確切錯誤。它是Windows 7,你試圖打開受保護的文件夾中的文件偶然,或者你只是試圖在桌面上打開它?

我不認爲這與zip文件的製作方式有關,但我可能是錯的。

+0

我更新了我的問題...... XP ...在桌面上。 – bschaeffer 2010-07-13 03:21:30

3

當使用完整目錄路徑而不是相對路徑壓縮文件時,可能會發生這種情況。您可以在這裏找到這個問題的一個例子:

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

您可能需要使用其他的壓縮工具或自己編寫。

+0

我認爲這可能是這種情況。實際上,這是第一次運行的事情之一,但是這個項目失控了,所以我放棄了很多代碼。當我回去看時,我發現我第一次引用文件的方式不同。我必須在星期一測試它,當我得到一臺PC的時候。 – bschaeffer 2010-07-18 17:30:45