問題タブ [ziparchive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - .zipが4GB以上の場合、PHPのネイティブZipArchiveクラスは失敗します。直し方?
PHP 5.3 +のネイティブZipArchiveクラス(http://php.net/ziparchive)は破損した結果ファイル(.zip)を作成しますが、結果の.zipが最大4GB(3.6GBだと思います。サーバーはUbuntu 10.10 64ビット、4GB RAM、最新のPHP 5.3)。エラー(この.zipを解凍するとき、使用するソフトウェアは何でも)は次のとおりです。
Webでのいくつかの投稿によると、これは単にこのクラス/ zip関数の(文書化されていない)最大制限です。私の質問は:これを修正する方法、迅速で汚いですか?いくつかの可能なphp.iniまたはサーバー設定はありますか?または、ネイティブのubuntuシステムで4GB以上の.zipファイルを作成する他の方法はありますか?rootアクセス権がなく、新しいパッケージをインストールできません。
これには、Javaに関する同様のQ&Aがいくつかあり ます。Javaを使用したZipファイル:制限はありますか?
php - phpのzip形式のストリームへの文字列
私のデータベースとサービングデータベースを備えた処理サーバーがあり、低帯域幅コストでファイルを提供しています。処理サーバーでは、phpはファイルを作成できないため、ダウンロードのために別のサーバーに送信する前に、すべてをストリームで実行するか、メモリに保持する必要があります。数日前、「php:// memory」を使用したストリームの抽象化について知り、次のようなことができることを知りました。
ファイルをメモリに作成してから、他のサーバーにFTPで転送できるようにします。これはまさに私が望むものですが、データを送信する前にデータを圧縮したい場合もあります。できれば、ziparchiveなどのphpのネイティブ部分のみを使用し、特別なストリーム操作用の追加のカスタムクラスは使用しないでください。私は次のことに非常に近いことを知っています...
これが失敗するポイントは、getStreamの呼び出しです(正しく使用していると思いますが、常にfalseを返します)。zipは「php:// memory」でファイルを作成するのに問題がないようですが、ZipArchiveがどのようにzipを作成するかを十分に理解していないのに、何らかの理由でgetStreamが失敗します...
文字列からzip形式のファイルポインタに移動して、zip形式を他のサーバーにFTPで転送するにはどうすればよいですか?ファイルを作成できないことを忘れないでください。そうしないと、zipファイルを作成してからftpで転送します。
編集:以下のskinnynerdの提案に基づいて私は以下を試しました
これはzipを作成して送信しますが、zipは0バイトの大きさであるため、「php:// memory」が思ったように機能するとは思いません...実際には、閉じるステップで失敗します-$ zip -> close()はfalseを返します。これにより、zipを「php://memory」に開くことができるかどうか疑問に思います。誰かが私がzipを取得するためにこれらの線に沿って何を試すことができるか知っていますか?
php - PHP ZipArchive を使用して特定のディレクトリに zip を抽出します
PHPを使用してzipを特定のディレクトリに抽出する方法があるかどうかを判断できませんでした。のようなコードを使用する場合
zipをディレクトリ「files」に抽出し、zipの名前に一致するディレクトリ内にすべてのファイルを配置します。アップロード側がアップロード先のディレクトリの名前を決定できるようにしたくありません。たとえば、「myimg.jpg」を含む「zip.pdf」という zip をアップロードすると、それを抽出すると、その場所は次のようになります。
私が望むところに
とにかく、解凍したコンテンツを格納するために ZipArchive に新しいディレクトリを作成させない方法があるかどうか、または解凍したすべてのファイルをループして、解凍が完了したらそれらを移動する必要があるかどうか疑問に思っていました。
php - ZipArchive-フォルダーの抽出
ユーザーが自分のサイトのZIPアーカイブにポートフォリオをアップロードできるようにしています。
問題は、ほとんどのアーカイブが次のフォルダ構造を持っていることです。
ファイル(ディレクトリではなく)を自分のサイトに配置する方法はありますか(ポートフォリオのフォルダー構造は次のようになります)
現在、次のようにアップロードしています。
これはあらゆる種類の問題を引き起こします!
私はこれをやってみました:
無駄に。
objective-c - NSOpenPanelはObjective-Cでファイル名を取得しますか?
NSOpenPanel を作成すると、次のようになります。
そして、ログに記録fileName
すると、正しく、ファイルの完全なディレクトリが出力されますが、void で使用しようとすると、ÿ^0f のような非常に奇妙な文字のようになり、完全にランダムになります。なんで?
iphone - 単体テストの「アーキテクチャ i386 の未定義シンボル」
iPhone 静的ライブラリの単体テストをビルドしようとしたときにのみ、次のエラーが発生します。
元のプロジェクトのビルドは正常に機能します。
何が欠けている可能性がありますか?
ZipArchive は、元のプロジェクトとテスト プロジェクトの両方で参照されるlibz.dylibフレームワークを参照する .mm ファイルであることに注意してください。
さらに、通常のビルド設定の容疑者には次の値があります。
フレームワーク検索パス: "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks"
その他のリンカー フラグ: -all_load -lxml2 - ObjC
ヘッダー検索パス: /usr/include/libxml2
php - PHP ZipArchive は空のディレクトリを削除します
問題
ディレクトリ構造全体をダウンロードするために、すべてのサブディレクトリとファイルのzipファイルを(再帰的に)生成するため、RecursiveDirectoryIterator
. すべて正常に動作しますが、ディレクトリは正しく処理されますが、生成された zip ファイルに空のディレクトリは含まれません。これは私が現在使用しているものです:
を省略すると、すべてのディレクトリにファイルFilesystemIterator::SKIP_DOTS
ができてしまいます。.
結論
イテレータが機能し、addEmptyDir
呼び出しが正しく実行され (結果もチェックされます!)、さまざまな zip ツールを使用して zip ファイルを作成すると、空のディレクトリがインテントとして機能します。これは phps のバグですかZipArchive
( php.net lib または何か不足していますか? ディレクトリ構造をそのまま維持するためだけにダミー ファイルを作成することはしたくありません。
php - PHPでZipアーカイブが暗号化されているかどうかを確認するには?
私が理解しているように、ステータスは汎用ビットフラグを含むアーカイブ暗号化です。これを ZipArchive::statname() で確認してみるのですが、この方法では情報を取得できないようです。
他に何ができますか?アーカイブを読んでヘッダーを解析しますか? system() を呼び出すことができることはわかっていますが、その特異性のためにこのメソッドを使用したくありません (この関数をホストしている一部は無効になっています)。
php - zip アーカイブを作成し、ftp サーバーにストリーミングします
ローカル ファイルから zip ファイルを作成し、直接 ftp にストリーミングしようとしています (最初に zip をディスクに書き込む必要はありません)。圧縮自体には問題はありませんが、ZipArchive クラスが ftp ストリーム ラッパーを認識していないようです。
次のコードは、問題を説明するために思いついた最も単純なものです
$zip->open
呼び出しは戻りますがtrue
、戻り$zip->close
ますfalse
。エラー メッセージを取得する方法や、there is an error
. 問題は、私が何を間違っているのか、または ZipArchive クラスでこのようなことを行うことができないということです。
c# - ZipArchive が無効な ZIP ファイルを作成する
エントリが 1 つのコードから新しい ZIP パッケージを作成し、その ZIP パッケージをファイルに保存しようとしています。System.IO.Compression.ZipArchiveクラスでこれを達成しようとしています。次のコードで ZIP パッケージを作成しています。
次に、ZIP を WinRT のいずれかのファイルに保存します。
または、通常の .NET 4.5 では:
しかし、生成されたファイルは Windows エクスプローラーや WinRAR などでも開くことができません (生成されたファイルのサイズが zipStream の長さと一致することを確認したので、ストリーム自体は正しくファイルに保存されました)
。何か間違ったことをしているのですか、それとも ZipArchive クラスに問題がありますか?