0

計画

  1. ページ全体を更新せずにファイルをアップロードする必要があります。
  2. アップロードされたファイルは、一時的な場所(セッションまたは Cookie)に保存する必要があります。
  3. ユーザーがすべてのフォーム フィールドに正しく入力した場合にのみ、ファイルをサーバーに保存します。

注: これは jQuery スライダーのスライドの 1 つです。そのため、完全に更新すると、ユーザー エクスペリエンスが損なわれます。


問題

Fileuploader コントロールを AJAX 更新パネル内に配置すると、サーバー側でファイルにアクセスできなくなります。

注:これまでのところ、これは安全上の理由によるものです。

連携するバイナリがクライアントにインストールされていないと実行できません。AJAX フレームワークがファイルの内容を読み取ってサーバーに送信できる安全なメカニズムはありません。ブラウザは、ファイル入力ボックスからのマルチパート フォーム ポストとしてのみサポートします。


質問

  1. ファイルを一時的な場所に保存する場合、セッションまたは Cookie を使用する必要がありますか? (ユーザーが Cookie を無効にしている場合はどうなりますか?)
  2. ポストバックを防止することは、ユーザーの安全基準に反します。それは私のウェブサイトの評判に害を及ぼしますか? (SEO等について)
  3. どの道を取る?
    • AJAX を使用した C# ASP.Net? (回避策はありますか?)
    • C# ASP.Net + AJAX コントロール ツールキット? それは役に立ちますか?(AsyncFileUpload コントロールを使用)
    • C# ASP.Net + jQuery コントロール? (JavaScript からデータを取得する際に問題はありませんか?)
    • C# ASP.Net + iFrame? (最もエレガントなソリューションではありません)
4

1 に答える 1

2
  1. 使用できる Cookie の合計量は数キロバイトに制限されているため、ファイルを保存するための実行可能なオプションではありません。したがって、残りはセッションのみになります。ファイルをファイル システムに保存し、使用しない場合は削除することも検討してください。ファイルをメモリ (セッション) に保存すると、一度に処理できるユーザー数が制限されるためです。

  2. いいえ、ファイルのアップロードなどの機能については、心配する必要はありません。検索エンジンは、ページをスキャンするときにそのような機能を使用しようとしません。

ファイルへの直接アクセスをサポートするブラウザーで AJAX アップロードを使用できますが、すべてのブラウザーをサポートする必要がある場合、投稿を行う方法はありません。ただし、投稿によって新しいページが読み込まれる必要はありません。フォームを iframe に配置するか、フォームのターゲットを iframe に向けることができます。

于 2012-09-12T23:26:34.103 に答える