如何将存储在数据库中的图像显示为div?

时间:2014-09-04 07:06:26

标签: javascript jquery sql asp.net json

我创建了一个用于从数据库获取图像的SP,如下所示:

ALTER PROCEDURE spGetItemImage @Id AS INT
AS
BEGIN
SET NOCOUNT ON;
SELECT ItemImage1,ItemID,CompanyID
FROM ItemImage
WHERE ItemImage.ItemID = @Id 
END

ItemImage1作为字节[250]被接收。我有一个div用于从数据库<div id="imgUpload">接收图像。我有一个Json用于在div中显示图像。这里以字节代码的形式接收图像。所以它无法在div上显示任何图像。到目前为止我做的是:

document.getElementById("imgUpload").src = "data:image/png;base64," + (data.d.ItemImage1);

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为您应该将字节数组转换为图像

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}

然后使用
将该图像保存到特定位置图图像 像Server.MapPath("~\\UploadImages")一样 并在Div中显示

反之亦然您可以尝试: 将Image转换为byte [] array

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 return  ms.ToArray();
}

答案 1 :(得分:0)

您需要创建类似

的功能
public function DisplaySavedDBImage()
{
//get Image from DB (as per your code base... this is just an example)
    $model=$this->loadModel($_POST['Pic']['id']);



    header('Pragma: public');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Transfer-Encoding: binary');
    header('Content-length: '.$model->file_size);
    header('Content-Type: gif');
    header('Content-Disposition: attachment; filename='.$model->file_name);

        echo $model1->file_name;
}  and <?php echo CHtml::link('image',array('displaySavedDBImage','id'=>$model->primaryKey)); ?>