2012-07-16 123 views
0

我使用jQuery Form Plugin和PHP上傳文件。我上傳了一個Zip文件到服務器,使用move_uploaded_file()。它返回true,然後我將該文件解壓縮到服務器中的另一個文件夾,將現有文件和文件夾複製到該目錄。但是,我看不到文件夾中的文件。只有文件夾存在。然後我下載了上傳的文件,當我試圖在本地解壓縮時,我得到了The archive is either in unknown format or damaged。原始的Zip文件打開罰款。我只是不知道檔案發生了什麼。請幫助我。爲什麼上傳的文件Zip文件是空的?

+0

你有沒有在移動它後檢查文件夾中的文件,檢查它是否與原始版本相同 – Waygood 2012-07-16 11:57:54

+0

」然後我下載了上傳的文件,當我嘗試在本地解壓縮它時t檔案格式不明或已損壞。「 - 所以它正在上傳。先刪除它,然後重新執行它,以防止它被覆蓋。 – Waygood 2012-07-16 12:07:21

+0

正在上傳。但是zip中的所有文件都丟失了。 – guitarlass 2012-07-16 12:13:13

回答

0

不同系統的Zip實現不同。在Windows上創建的存檔可能在Linux上不可讀。檔案可能實際上是有效的。

請提供細節:您是如何創建的歸檔,你怎麼提取它...

+0

吉他正在同一臺電腦上打開zip(上傳到服務器,然後再次下載),這意味着某處出現了損壞。嘗試FTP的zip,而不是jQuery上傳,然後解壓縮,以檢查kgb的答案是否正確。 – Waygood 2012-07-16 12:04:05

+0

yupp我之前做過。我使用ftp下載並通過代碼解壓縮。它可以很好地使用ftp。 – guitarlass 2012-07-16 12:11:46

0

通過一切手段,你需要在你的HTML表單指定enctype="multipart/form-data"。其他明智的,你的文件將無法正確上傳(或全部):

<form id="myForm" action="upload.php" method="post" enctype="multipart/form-data"> 
    File: <input type="file" name="file" /> 
    <input type="submit" value="Submit" /> 
</form> 

根據有關ENCTYPE W3C規範:「該屬性指定用於表單提交給服務器的內容類型(當值方法是「post」),這個屬性的默認值是「application/x-www-form-urlencoded」,值「multipart/form-data」應該和INPUT元素結合使用,type =「file」

+0

所有這些代碼已經添加了,我不認爲即使是一個空的zip文件也會上傳,如果'enctype =「multipart/form-data」'丟失。 – guitarlass 2012-07-16 12:15:25