将图像转换为字节以存储在数据库中

时间:2010-10-04 08:08:31

标签: asp.net sql-server

有人能告诉我如何将图像(存储在文件路径中)转换为字节以存储在数据库中吗?

2 个答案:

答案 0 :(得分:1)

为什么要将路径存储为字节?你为什么不把它作为字符串存储?除非您想将图像数据存储为数据库中的字节,否则请查看Image数据类型。

答案 1 :(得分:0)

要将本地存储的图像转换为字节,您可以使用IO.File.ReadAllBytes()。要在网络上转换图片,您可以使用Net.WebClient.DownloadData()IMAGE数据类型将在SQL Server中消失,因此请使用VARBINARY(MAX)来存储它。

代码:

Dim url As String = "http://example.com/image.png",
    file As String = "c:\image.png"

Using connection As New Data.SqlClient.SqlConnection("your connection string"),
    saveImage As New Data.SqlClient.SqlCommand("dbo.saveImage", connection)

    connection.Open()
    saveImage.CommandType = Data.CommandType.StoredProcedure

    'use only one of these
    saveImage.Parameters.AddWithValue("@imageData", New Net.WebClient().DownloadData(url)) 'get file from url
    'saveImage.Parameters.AddWithValue("@imageData", IO.File.ReadAllBytes(file)) 'get file locally

    saveImage.ExecuteNonQuery()

End Using

步骤:

CREATE PROCEDURE [dbo].[saveImage] ( @imageData AS VARBINARY(MAX) )
AS
INSERT INTO dbo.myImage ( imageData ) VALUES ( @imageData )

表:

CREATE TABLE [dbo].[myImage](
    [imageData] [varbinary](max) NOT NULL
)