2016-10-21 16 views
0

php ZipArchiveがサーバからダウンロードしたzipファイルを開くことができません。 私はWinRARのを使用して作成し、自分のサーバーにアップロードしたzipファイルを持っている、ファイルの場所はここにある:http://myserver.com/uploads/test.zip私は私が得るすべてはサーバからzipアーカイブをダウンロード中にエラーが発生しました

error: Not a zip archive.

でこのコードを実行すると、それはここでは、有効なzipファイル だ私のコード

です

ファイルを開いて抽出しますが、ファイルを削除してもそのファイルが既に存在すると不平を言います。

私がhttp://myserver.com/update/test.zipにアクセスしたときに得たファイルは壊れてしまいました。なぜ、私が上に貼り付けた同じコードがちょうど1週間前に働いたのか分かりません。

答えて

1

問題は実際には.zipファイルです。ダウンロードしたため、WinZipでファイルを開くことができません。新しいアーカイブを作成し、サーバーに再度アップロードしてください。

コードは大丈夫ですので、私はそれが問題のファイルだと思っています。

更新日1:

.zipファイルが正しくなりました。新しいファイルをダウンロードして抽出する前に、ファイルを削除してください。 unlink( "uploads/update.zip")を使うと、まずuploads/tempディレクトリをクリアする必要があるかもしれません。

更新日2:

ダウンロードがすぐに機能しました。このヘッダーを追加しよう:

header("Content-Transfer-Encoding: Binary"); 

はまた、抽出した後にZIPARCHIVEを閉じることを忘れないでください:

$zip->close(); 
+0

私は私の答えを更新しました、あなたは今テストすることができますか? –

+0

私はcodezfunからダウンロードしたファイルをテストするために自分のwinzipをインストールしました。そして、winzipのバージョン20.5(12118)が開きます。あなたはどのバージョンのwinzipを持っていますか? –

+0

@Maxlight私は自分の答えを更新しました。私はWinZipバージョン20.5 Proも使用しています。 –

関連する問題