2017-03-23 14 views
1

ここでは、asp.netの指定されたパスからイメージがロードされていませんが、シナリオです。私はasp.netを使用してフォルダに画像をアップロードし、SQLサーバデータベースへのパスを挿入しましたが、私のASPアプリケーションにあるパスから画像を取得しようとすると "パスは正しい" 。エラーはありません。ここでイメージはパスからロードされていません

ここでデータのアップロードのためのコード

if (FileUpload1.HasFile && TextArea1.Value != null) 
    { 
     string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
     string path = Server.MapPath("/admin/images/" +fileName); 
     FileUpload1.PostedFile.SaveAs(Server.MapPath("/admin/images/" + fileName)); 
     //Response.Write("<script>alert('" + path + "');</script>"); 
     string ta1 = TextArea1.Value; 
     string sql = "UPDATE homep SET img = '" + path + "', description= '" + ta1.Replace("'", "''") + "' WHERE id = 1;"; 
     cmd = new SqlCommand(sql, con); 
     if (cmd.ExecuteNonQuery() > 0) 
     { 
      Response.Write("<script>alert('Updation Success ..!');</script>"); 
     } 
    } 

あなたは、サーバのハードドライブ上の物理パスを提供フェッチデータ

dr.Read(); 
    Response.Write("<img src='"+dr["img"].ToString()+"' class='img-responsive'/>"); 
    dr.Close(); 

This Image shows final output as i am getting content but not getting image from path

答えて

1

ためのコードはです。クライアントのブラウザが開くことのできないブラウザに送信します。あなたはイメージを提供するアクションメソッドを構築し、あなたのイメージからそのアクションメソッドへのURLをsrc = ""に提供する必要があります。このような

public FileResult ServeImage(string path) 
{ 
    var bytes = System.IO.File.ReadAllBytes(path); 
    return File(bytes, "image/png"); 
} 
+0

は解決のためにあなたに感謝しますが、私はパスを取得するためにデータベースを使用します。私はデータベースから取得しているこのメソッドにパスを入れてもいいですか? –

+0

はい。イメージのsrcには、インラインコードのようにパスを指定します。このパスはURLパラメータとして渡されます(?path =を参照)。この方法では、ハードドライブからファイルを読み込み、ブラウザに提供します。 – middelpat

+0

どうもありがとうございました。 –

0

使用〜::その後、

Response.Write("<img src='/Serveimage/?path="+dr["img"].ToString()+"' class='img-responsive'/>"); 

と 'ServeImage' actionmethodを作成します。例えば

Server.MapPath("~/admin/images/" +fileName) 
+0

ソリューションのおかげで、私はすでにそれを行っているがまだ動作していません。 –

+0

イメージパスのフォルダが正しいことを確認してください –

+0

物理パスにはエラーがありましたが、物理パスを指定していましたが、仮想パスが必要です。 –

関連する問題