Bạn có thể sử dụng câu lệnh SQL sau để tạo một bảng cho phép lưu trữ hình ảnh:
CREATE TABLE [dbo].[_image](
[Img _id] [int] identity(1,1) CONSTRAINT [pk_image] PRIMARY KEY NOT NULL,
[Img _name] [varchar] (30) not NULL,
[Img _file] [IMAGE] NULL,
[Img _type] [varchar] (30) NULL
)
ON [PRIMARY] Textimage_on [PRIMARY]
Trong đó,
§ Img_id: lưu trữ id của hình và là khóa chính của bảng
§ Img_name: lưu trữ tên của hình ảnh.
§ Img_file: lưu trữ hình ảnh
§ Img_type: lưu trữ kiểu nội dung của hình ảnh
Bây giờ chúng ta tiến hành thực hiện các bước để upload hình vào cơ sở dữ liệu
- Tạo một Webform để upload file hình
- Upload hình vào cơ sở dữ liệu.
Tạo Webform để tải file hình ảnh.
Bạn tạo form upload hình như sau:
|
<form enctype="multipart/form-data" id="form1" runat="server">
<div>
<table id="table1" border="0" cellpadding="0" style="border-collapse: collapse"
width="100%">
<tr>
<td width="125">
Image Name</td>
<td width="10">
</td>
<td>
<asp:TextBox ID="txtname" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>
File to Upload</td>
<td>
</td>
<td>
<input id="fileimage" runat="server" type="file" /></td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
<asp:Button ID="btupload" runat="server" Text="Upload" OnClick="btupload_Click" /></td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</div>
</form>
|
Tải file hình vào cơ sở dữ liệu.
Khi người dùng nhấn vào nút Upload, sự kiện btupload_Click được gọi. Bạn có thể copy đoạn mã lệnh sau vào sự kiện btupload_Click
|
protected void btupload_Click(object sender, EventArgs e)
{
// tạo đối tượng Stream
System.IO.Stream img_strm = fileimage.PostedFile.InputStream;
// nhận kích thước của hình
int img_len = fileimage.PostedFile.ContentLength;
// nhận kiểu hình
string strType = fileimage.PostedFile.ContentType;
string strName = txtname.Text;
// tạo mảng kiểu byte của file đã được upload
byte[] imgData = new byte[img_len];
int n = img_strm.Read(imgData, 0, img_len);
int result = SaveToDB(strName, imgData, strType);
}
// Hàm SaveToDB()
int SaveToDB(string imgName, byte[] imgbin, string imgcontenttype)
{
OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;server=(local);database=_NET;uid=_net;pwd=");
OleDbCommand cmd = new OleDbCommand("INSERT INTO _image values(?,?,?)", con);
OleDbParameter param0 = new OleDbParameter("@imgName",OleDbType.VarWChar, 30);
param0.Value = imgName;
cmd.Parameters.Add(param0);
OleDbParameter param1 = new OleDbParameter("@imgName", OleDbType.Binary);
param1.Value = imgbin;
cmd.Parameters.Add(param1);
OleDbParameter param2 = new OleDbParameter("@imgType", OleDbType.VarWChar, 30);
param2.Value = imgcontenttype;
cmd.Parameters.Add(param2);
con.Open();
int numofwsAffected = cmd.ExecuteNonQuery();
con.Close();
return numofwsAffected;
}
|
Và bây giờ, file hình đã được lưu trữ trong cơ sở dữ liệu của bạn.