Pendahuluan Dalam banyak kasus, kita perlu menyimpan gambar ke database. Pada beberapa aplikasi, terdapat beberapa informasi sensitif yang tidak dapat disimpan dalam sistem file, karena gambar apa pun yang disimpan dalam sistem file dapat dengan mudah diperoleh secara ilegal oleh pengguna.
Artikel ini akan membahas cara menyimpan gambar ke database SQL SERVER di ASP.NET.
Pada artikel ini kita akan mempelajari tentang aspek-aspek berikut:
l Persyaratan untuk mengunggah file gambar
l Menggunakan objek Strem
l Dapatkan ukuran dan jenis gambar yang diunggah
l Bagaimana cara menggunakan metode InputStream?
Persyaratan Upload File Gambar Sebelum kita mulai mengupload kita perlu melakukan dua hal penting
Atribut enctype dari tag #Form perlu disetel ke formulir berikut:
enctype="multibagian/form-data"
#Menyediakan kontrol Html yang memungkinkan pengguna memilih file gambar:
<tipe masukan=file>
#Juga referensi namespace System.IO untuk memproses objek Strem. Tiga item di atas harus diterapkan ke halaman aspx. Ada juga persyaratan berikut di SQL SERVER:
#Sebuah tabel dengan setidaknya satu jenis bidang Gambar
#Selain itu, akan lebih baik jika kolom tipe Varchar digunakan untuk menyimpan tipe gambar. Kemudian, kita memiliki tabel data dengan tipe kolom Gambar dan <input type=file> (kontrol file HTML). Kita juga memerlukan tombol kirim yang dapat diklik pengguna setelah memilih gambar. Dalam event OnClick tombol kita perlu mendapatkan konten file gambar dan terakhir memasukkannya ke dalam tabel data. Mari kita lihat event OnClick tombol, yang membaca gambar dan memasukkannya ke dalam tabel data.
Tombol kirim kode acara OnClick
http://blog.downcodes.com/
Redupkan intImageSize Sebagai Int64
Redupkan strImageType Sebagai String
Redupkan ImageStream As Stream
' Mendapatkan Ukuran Gambar
intImageSize = PersonImage.PostedFile.ContentLength
' Mendapatkan Jenis Gambar
strImageType = PersonImage.PostedFile.ContentType
' Membaca Gambar
ImageStream = PersonImage.PostedFile.InputStream
Meredupkan ImageContent(intImageSize) Sebagai Byte
Redupkan intStatus Sebagai Integer
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
' Buat Instance Koneksi dan Objek Perintah
Redupkan myConnection Sebagai SqlConnection Baru(ConfigurationSettings.AppSettings("ConnectionString"))
Redupkan myCommand Sebagai Baru SqlCommand("sp_person_isp", myConnection)
' Tandai Perintah sebagai SPROC
myCommand.CommandType = CommandType.StoredProcedure
' Tambahkan Parameter ke SPROC
Redupkan prmPersonImage Sebagai SqlParameter Baru("@PersonImage", SqlDbType.Image)
prmPersonImage.Value = Konten Gambar
myCommand.Parameters.Add(prmPersonImage)
Redupkan prmPersonImageType Sebagai SqlParameter Baru("@PersonImageType", SqlDbType.VarChar, 255)
prmPersonImageType.Nilai = strImageType
myCommand.Parameters.Add(prmPersonImageType)
Coba
Koneksi saya.Buka()
Perintahku.ExecuteNonQuery()
Koneksi saya.Tutup()
Response.Write("Orang baru berhasil ditambahkan!")
Tangkap SQLexc Sebagai SqlException
Response.Write("Penyisipan Gagal. Detail Kesalahan adalah: " & SQLexc.ToString())
Akhiri Coba
Bagaimana cara kerjanya?
Objek PersonImage adalah kontrol HTMLInputFile. Pertama kita perlu mendapatkan ukuran gambar yang disisipkan, yang dicapai dengan metode berikut:
intImageSize = PersonImage.PostedFile.ContentLength
Selanjutnya, Anda perlu mendapatkan tipe gambar melalui properti ContentType. Hal terakhir dan terpenting adalah mendapatkan aliran file gambar, yang dicapai melalui metode berikut:
ImageStream = PersonImage.PostedFile.InputStream
Kami memiliki array byte ImageContent, yang siap digunakan untuk menyimpan konten gambar. Seluruh gambar dibaca melalui metode Read pada objek Stream. Metode ini memiliki tiga parameter, yaitu:
#Lokasi target konten gambar yang disalin
#Posisi awal membaca
#Subbagian yang perlu dibaca dinyatakan sebagai berikut:
intStatus = ImageStream.Baca(ImageContent, 0, intImageSize)
Sekarang, kita membaca keseluruhan isi gambar. Selanjutnya kita perlu memasukkan konten gambar ke dalam tabel data SQL. Kita akan menggunakan prosedur tersimpan untuk memasukkan jenis gambar dan gambar ke dalam tabel data SQL. Jika Anda pernah melihat daftar kode di atas, Anda akan tahu bahwa kami mengatur tipe data ke SqlDbType.Image. Dengan cara ini, kami berhasil menyimpan gambar ke database SQL SERVER.