0

SQL08でSystem.Byte[]を使用しています。System.Byte[]を画像に変換し、その画像を<img>htmlのタグで表示する必要があります。jqueryを使用してmvcから画像を取得し、それをhtmlで表示します。

HTMLを使用している代わりにView(V)を使用していません。

MVC3コントローラー

public ActionResult Get_Leave_IO_Pic(DetailsModel model)  
      {
        TCSServiceReference.MBLServiceSoapClient TCSClient = new TCSServiceReference.MBLServiceSoapClient();
        DataSet ds = new DataSet();
        DataSet resultds = TCSClient.Get_Employee_Details_Srno(ds, model.EMPSRNO);
        Image strJSON = null;
        if (resultds.Tables[0] != null && resultds.Tables[0].Rows != null)
        {
            byte[] byteArrayIn = (byte[])resultds.Tables[0].Rows[0]["EMPPHOT"];
            MemoryStream ms = new MemoryStream(byteArrayIn);
            Image returnImage = Image.FromStream(ms);
            strJSON = returnImage;
        }
        return Json(new { result = strJSON });
    }

HTML

 <img src="../images/bis_user.png" width="113" height="104" border="0" alt="" id="ImageStaff" />

jQuery

function GetLeaveIOPic(empsrno) {
   $.post("http://Details/Get_Leave_IO_Pic",
    {
        EMPSRNO: empsrno
    },
    function (data) {
        $.each(data, function (key, value) {
            $('#ImageStaff').val(); //How to get image here?
        });
    }, 'json' );
}
4

2 に答える 2

1

jqueryを使用してmvcから画像を取得し、それをhtmlで表示します。

それを実現するためにJavaScriptは本当に必要ありません。コントローラアクションで応答の画像コンテンツを直接返し、適切なコンテンツタイプを設定することができます。

public ActionResult Get_Leave_IO_Pic(string id)  
{
    var TCSClient = new TCSServiceReference.MBLServiceSoapClient();
    var ds = new DataSet();
    var resultds = TCSClient.Get_Employee_Details_Srno(ds, id);
    if (resultds.Tables[0] != null && resultds.Tables[0].Rows != null)
    {
        byte[] byteArrayIn = (byte[])resultds.Tables[0].Rows[0]["EMPPHOT"];

        // TODO: adjust the image MIME type based on what you have stored
        // in your database
        return File(byteArrayIn, "image/jpeg");
    }

    return HttpNotFound();
}

ビューでは<img>、データベースから画像を取得できるIDを渡すことにより、タグをこのコントローラーアクションにポイントするだけです。

<img src="@Url.Action("Get_Leave_IO_Pic", new { id = "123" })" width="113" height="104" border="0" alt="" id="ImageStaff" />
于 2012-04-23T09:29:05.800 に答える
1

ついに私はこれに対する解決策を得ました。

`======================================= MVC3コントローラー

public ActionResult Get_Leave_IO_Pic(DetailsModel model)
    {
       TCSServiceReference.MBLServiceSoapClient TCSClient = new TCSServiceReference.MBLServiceSoapClient();
        DataSet ds = new DataSet();
        DataSet resultds = TCSClient.Get_Employee_Details_Srno(ds, model.EMPSRNO);
        string strJSON = "Failed";
        if (resultds.Tables[0] != null && resultds.Tables[0].Rows.Count > 0)
        {
            byte[] byteArrayIn = (byte[])resultds.Tables[0].Rows[0]["EMPPHOT"];
            string EmpName = resultds.Tables[0].Rows[0]["EMPNAME"].ToString();
            MemoryStream ms = new MemoryStream(byteArrayIn);
            Image gotimage = Image.FromStream(ms);
            string filepath = (System.Configuration.ConfigurationManager.AppSettings.Get("ImageUpload")).ToString(); 
            //filepath = E:/Project/project1/Project1 MVC/Images/
            gotimage.Save(filepath + EmpName + " - " + model.EMPSRNO + ".png");
            strJSON = System.Configuration.ConfigurationManager.AppSettings.Get("ImageURL").ToString() + EmpName + " - " + model.EMPSRNO + ".png";
            //ImageURL = http://localhost:8085/Project1MVC/Images/
        }
        return Json(new { result = strJSON });
    } 

`======================================= HTML

 <img src="../images/bis_user.png" width="113" height="104" border="0" alt="" id="ImageStaff" />

`======================================= jQuery

function GetLeaveIOPic(empsrno) {
        $.post("http://localhost:8085/Project1MVC/Details/Get_Leave_IO_Pic",
    {
        EMPSRNO: empsrno
    },
    function (data) {
        $.each(data, function (key, value) {
            if (!(data.result == 'Failed')) {
                // data.result = http://localhost:8085/Project1MVC/Images/name - 23.png
                $('#ImageStaff').attr('src', data.result.toString());
            }
        });
    },
  'json'
 );
    }
于 2012-06-06T12:03:21.910 に答える