2

複数のファイルをアップロードするために使用したいフラッシュアップロードコンポーネントがあります。私はMVCアプリで使用していますが、ユーザーがアップロードするファイルを選択してアップロードし、アップロードしたすべてのファイルを示すページを表示して、説明を追加して選択できるようにします。それらを保存する場所、そしてファイルを保存します。

ファイルがアップロードされた時点で、フラッシュコンポーネントはコントローラーを呼び出してファイルを処理します。このビットは正常に機能し、アップロードされたファイルを取得して、好きなように処理できます。問題は、コントローラーが作業を完了した後、ビューにリダイレクトできないことです。これは、フラッシュコンポーネントがページではなくコントローラーを呼び出しているため、これを実行しようとしても何も起こらないためです。

セッションにファイルを保存し、アップロードの完了時にフラッシュアクションスクリプトのコードを使用してユーザーを転送しようとしましたが、これは機能せず、セッションは常にnullになります。また、実際にファイルを一時的な場所に保存してから、表示ページに一時的な場所にあるすべてのファイルを一覧表示することも検討しましたが、これには、ファイルを一時的なディレクトリに1回、次に実際の場所に2回保存する必要があります。ユーザーはそれらを置きたいと思っていますが、これは遅いと思います。

これを行うための最良の方法について何か考えはありますか?

4

1 に答える 1

0

あなたのサイトはCookieベースの認証を使用していますか?その場合、フラッシュアップローダーはアップロード時に認証Cookieを含める必要があります。そうしないと、アップロードは新しいユーザーからのものと見なされます。これにより、セッション状態でのnull値が説明されます。フラッシュを取得してCookieを投稿できない場合は、アップロードURL内でユーザーを識別する必要があります。

セッション状態を最小限に抑えるか、まったく使用しない方がよいため、画像などの大量のデータを保存することはお勧めできません。

私たちのアプリケーションでは、アップロードされたすべてのファイルをデータベースに保存し、後でそれらを取得/表示するために使用される一意のGUIDを提供します。データベース内で画像をユーザーに関連付けることができます。この場合、アップロードしたばかりの画像としてマークを付けると、ユーザーを追加情報ページにリダイレクトしたときに、表示する画像がわかります。

ただし、これには、ファイルを2回保存する必要があります。1回は一時ディレクトリに保存し、次にユーザーがファイルを配置したい実際の場所に保存します。

サーバー上のファイルの保存場所に関連して、ファイルの保存場所をユーザーが決定できるようにしないでください。

于 2009-07-27T00:50:23.280 に答える