Oracle データベースにいくつかのデータが保存されています。保存されている画像データを他のデータと一緒に .asp ページに表示したいと思います。
データベースからデータを取得して header("Content-type: image/jpeg"); を使用する場合 他のASPデータで画像を表示することはできません..他の方法はありますか?
ここに良いリンクがあります
http://www.codeproject.com/Articles/13365/Insert-retrieve-an-image-into-from-a-blob-field-in
以下の例は withですが、次のSQL-Server
ように変更できますOracle
オラクルの場合:-
FileStream FS = new FileStream("image.jpg", FileMode.Create);
byte[] blob = (byte[])"YourValue";
FS.Write(blob,0,blob.Length);
FS.Close();
次のように作成generic http handler
します
using System;
using System.Configuration;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
public class ShowImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Int32 empno;
if (context.Request.QueryString["id"] != null)
empno = Convert.ToInt32(context.Request.QueryString["id"]);
else
throw new ArgumentException("No parameter specified");
context.Response.ContentType = "image/jpeg";
Stream strm = ShowEmpImage(empno);
byte[] buffer = new byte[4096];
int byteSeq = strm.Read(buffer, 0, 4096);
while (byteSeq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteSeq);
byteSeq = strm.Read(buffer, 0, 4096);
}
//context.Response.BinaryWrite(buffer);
}
public Stream ShowEmpImage(int empno)
{
string conn = ConfigurationManager.ConnectionStrings ["EmployeeConnString"].ConnectionString;
SqlConnection connection = new SqlConnection(conn);
string sql = "SELECT empimg FROM EmpDetails WHERE empid = @ID";
SqlCommand cmd = new SqlCommand(sql,connection);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@ID", empno);
connection.Open();
object img = cmd.ExecuteScalar();
try
{
return new MemoryStream((byte[])img);
}
catch
{
return null;
}
finally
{
connection.Close();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
次のように画像を表示します
Image1.ImageUrl = "~/ShowImage.ashx?id=" + id;
下にいくつかのリンクがあり
ますデータベースからGridViewに画像を表示していますか?
Asp.netの画像コントロールでデータベースに画像を表示するには? C# http://www.dotnetcurry.com/ShowArticle.aspx?ID=129
を使用して、ASP.net のデータベースから画像を表示します。
<img id="emp_photo" src="emp_photo.ashx?id=' + empId + '" title="' +
emName + '" alt="emp_photo" width="125px" height="170px"
Dim Query As String = "select fr.phote from follower_register fr where fr.follower=" & context.Request.QueryString("id")
db.Connect()
Dim objConnection As OracleConnection = db.objConnection
Dim ds As New DataSet
Dim cmd As OracleCommand = New OracleCommand(Query, objConnection)
Dim reader As OracleDataReader = cmd.ExecuteReader()
If reader.Read() Then
context.Response.BinaryWrite(reader(0))
End If
db.Disconnect