2012-01-02 21 views
0

からの画像へのアクセス、私はその安全なフォルダ を知っているが、私は、私はHTMLからこの画像ファイルにアクセスできる方法がわからない(何も画像が表示されない)私はApp_Dataにフォルダ内のいくつかの画像を保存したいApp_Dataフォルダ

されています提案がありますか、または外部ユーザーからアクセスできない安全な場所に画像を保存する方法

答えて

1

次のようにしてください。

namespace Moo.Core.Handlers 
{ 
    public class Thumbnail : IHttpHandler 
    { 
     public bool IsReusable 
     { 
      get { return false; } 
     } 

     public void ProcessRequest(HttpContext context) 
     { 
      String FileName = Path.GetFileName(context.Request.PhysicalPath).Replace(".th", ""); 
      String AssetName = HttpContext.Current.Request.MapPath(Path.Combine(HttpContext.Current.Request.ApplicationPath, "UserData/Images/" + FileName)); 

      if (File.Exists(AssetName)) 
      { 
       context.Response.ContentType = ImageManipulation.TypeOf(AssetName).MimeType; 
       context.Response.BinaryWrite(File.ReadAllBytes(AssetName)); 
       context.Response.End(); 
      } 
     } 
    } 
} 
+0

より完全な答えを得るには、ハンドラの設定(必要な場合)と、このハンドラを使ってHTMLでイメージをどのように参照するのかを追加できますか? –

+0

私はPCに戻ったときに私はやります。 – Moo

1

App_Dataフォルダーは、データベース、XMLファイル、およびその他の形式のデータストレージを保持するように設計されています。そこに画像を保存する必要はありません。代わりに、別の場所にフォルダを作成し、Webサーバーを使用してそのフォルダのディレクトリの参照を無効にします。最後に、ユーザーが画像を見ることができる場合、ユーザーは一方向または他の方法でアクセスできますが、ディレクトリブラウザを無効にすると、たとえばWindowsエクスプローラのようにフォルダを移動することはできません。

-1

画像へのアクセスを制御したい場合は、ファイルをデータベースに保存し、必要なユーザーにバイナリイメージとして取得できます。例:

<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." /> 

詳細については、hereをご覧ください。

+0

それは良い解決策ですが、私が探しているものではありません –

+0

私はただ助けようとしていました。 –

関連する問題