0

現在、Web ルートの外部に多数のドキュメント プレビュー イメージ (jpg/tif) を保存しています。その数は数百にも及ぶため、効率的に機能させることが重要です。それらが Web ルートの外に保存される理由は、特定のユーザー/ユーザー グループのみが表示できるデータが含まれているためです (ただし、各ユーザーは表示できるドキュメントを数百個持つことができます)。

私の現在の実装では、ユーザーが「画像を表示」を選択すると ajax 呼び出しがトリガーされ、これにより問題の画像が Web ルート内の特定のフォルダーに移動されます。場所は返され、ユーザーに画像を表示するために使用されます。次の画像がクリックされると、呼び出しによって既存の画像がすべて削除され、要求された画像がコピーされます。セッションのログアウト/タイムアウト時に、ユーザーのイメージ フォルダーが空になります。これにはいくつかの問題がありますが、主に次のとおりです。

  1. ファイルは常にコピーおよび削除されています
  2. フォルダーに画像が残るリスクがあります (ログオフ スクリプトの問題)。
  3. 画像がフォルダにある間ずっと、別のユーザーが見ることができます (可能性は低いですが可能です)。

これを行うより良い方法はありますか?BinaryReader を ajax 呼び出しと組み合わせようとしましたが (ファイルをコピーする必要がなくなることを望んでいたため)、呼び出し元のページで JS が使用するデータを取得する方法がわかりません。

または、特定のセッション基準に基づいて、特定のユーザーのみが選択したフォルダにアクセスできるようにする方法はありますか? (あるとは想像できませんが、尋ねる価値があると思いました。)

したがって、これをどのように改善できるかについて誰かがアイデアを持っていれば、それは素晴らしいことです. これは、Jquery を使用した ac# ASP.NET アプリです。

編集: 画像は ajax を使用して表示されます。これにより、プリロードが可能になり、次/前の画像を選択するときにページの残りの部分を再読み込みする必要がなくなります。これは、画像が Web ルートの外部に保存されている JavaScript 画像スワッパー タイプの状況とほぼ考えることができます。

ありがとう。

4

3 に答える 3

1

私の現在の実装では、ユーザーが「画像の表示」を選択すると、ajax 呼び出しがトリガーされ、問題の画像が Web ルート内の特定のフォルダーに移動されます。

これは恐ろしい考えです。画像データにアクセスして、特定の MIME タイプのストリームとして Web に渡すだけでよいことに気付きましたよね?

于 2013-10-27T16:04:28.000 に答える
0

問題は、Web ルートにない JavaScript を介して画像を表示する方法でした。

セッション値 (認証) と送信されたパラメーターに基づいて画像を返す汎用ハンドラー (ashx ファイル) を作成しました。

これは、AJAX 経由で呼び出されます。

于 2013-11-19T19:38:47.523 に答える
0

おそらく、Cookie によってユーザーの資格情報をチェックするメソッドを作成してみてください。問題がない場合は、ユーザーがログインしてファイルを表示する必要があることを示す標準的な画像を読み込んで送り返します。問題がない場合は、適切なファイルを読み込んで表示します。 url パラメーターに基づくルート外のパス (コンテンツ タイプなどの適切なヘッダーを使用すると、しばしばmime-type ofc とも呼ばれます)。次に、適切なパラメータを使用して URL をそのメソッドにリンクします。

DB からバイナリ形式で画像を表示するコードの例 (ここなど) を簡単に見つけることができます。DBではなく、ルート外のパスからロードするだけで済みます。

また、AJAX でロードする必要はありません。ハンドラーの URL を指す SRC を使用して IMG を追加するだけです。または、表示されていないダウンロードが必要な場合は、ウィンドウをリダイレクト/開く。

于 2013-10-27T16:11:01.237 に答える