0

私の質問は、最初にすべてのファイルをアップロードしてから、後でメタデータを抽出することが可能かどうかを正確に知りたいですか? ファイルをアップロードしてメタデータを抽出できるWeb APIを開発しています。メタデータを抽出するために私が使用してきた方法は、一度に 1 つのファイルをアップロードし、そのメタデータを抽出して印刷することです。これをクライアント側(javascript)に実装し、ユーザーがサーバーからアップロードされたファイルをダウンロードできるようにしたいと考えています(ドロップボックスのような実装で、メタデータの操作も可能です)。出来ますか?

お時間をいただき、誠にありがとうございました。

4

3 に答える 3

0

既に述べたように、サーバーでは、ファイルは一時フォルダーに配置され、そこから好きなように操作できます。

マルチパート HTTP リクエストを正しく理解していれば、技術的には複数のファイルを送信できるはずですが、帯域幅の問題だけを考えると、このアプローチにはなりません。PHPなどのサーバー側アプリケーションがそれを処理できるかどうかさえわかりません。

ユースケースを正しく理解できたと思います。あなたの場合、AJAXリクエストを介してバックグラウンドでPHPスクリプトにファイルを送信することをお勧めします。そのため、ユーザーにとっては、すべてのファイルが最初にアップロードされたように見えます。バックグラウンドで、選択したファイルをループして、一度に 1 ファイルずつサーバーに送信します。サーバーはメタデータを読み取ってブラウザに送り返すことができ、そこで JS でさらに処理できます。

私はこれを自分でやったことがありませんが、これは私にとって一般的な問題のように見えるので、ウェブにはたくさんの情報があるはずです. これは良さそうです: http://blueimp.github.io/jQuery-File-Upload/ (「jquery multi file upload」の Google での最初のヒット)

于 2013-05-31T10:22:38.523 に答える
0

ファイルをアップロードすると、Web サーバーはファイルを受け入れ、ファイルのアップロードが完了するまで一時フォルダーに保存します。

ファイルのアップロードが完了すると、PHP スクリプトが開始されます。

そのため、PHP の作業 (PHP で行われる場合はメタデータの抽出など) は、ファイルのアップロードが完了した後に行われます。

PS。クライアント側でJavaScriptを使用してローカルファイルにアクセスできるとは思いません。

于 2013-05-31T10:11:26.347 に答える
-1

はい、これは非常に一般的な要求です。通常、すべてのファイル名を適切なフィールド (固定リストまたは動的に生成されたフィールド) に収集する HTML/JS クライアント ユーザー インターフェイスがあります。つまり、ブラウザのファイル アップロード フィールドは、display:none によって「非表示」にすることができます。これは、これらの必要なフィールドを保持しつつ、ユーザーにもっと凝ったものを表示するためです。

他の人が述べたように:同封フォームの送信後、すべてがサーバーに送信され、一時ディレクトリ(php.ini設定)に保存されます。フォームの投稿アクションを取得する php スクリプトが開始され、ディレクトリからファイルを取得できます。

$inputName = $_GET['userfile'];
$fileName  = $_FILES[$inputName]['name'];
$tempLoc   = $_FILES[$inputName]['tmp_name'];
于 2013-05-31T11:24:34.090 に答える