Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mengubah gambar ke array byte menggunakan javascript hanya untuk menyimpan gambar di server sql?

saya telah menemukan satu solusi. :)

dalam file javascript html, pertama-tama konversikan gambar yang diunggah ke format gambar base64 menggunakan kode berikut.

var p;
var canvas = document.createElement("canvas");
var img1=document.createElement("img"); 

function getBase64Image(){     
    p=document.getElementById("fileUpload").value;
    img1.setAttribute('src', p); 
    canvas.width = img1.width; 
    canvas.height = img1.height; 
    var ctx = canvas.getContext("2d"); 
    ctx.drawImage(img1, 0, 0); 
    var dataURL = canvas.toDataURL("image/png");
    alert("from getbase64 function"+dataURL );    
    return dataURL;
} 

jadi kami mendapat kode base64 dari gambar yang diunggah di dataURL .

SEKARANG KIRIM KODE BASE64 INI (dataURL ) ke layanan web dan ubah string base64 menjadi array byte menggunakan kode berikut dan simpan juga ke server sql

kode c#--untuk mengonversi base64 ke byte arry dan menyimpan di sql

private void Form1_Load(object sender, EventArgs e) {
    int userid = 5;
    string base64="";// load base 64 code to this variable from js 
    Byte[] bitmapData = new Byte[base64.Length];
    bitmapData = Convert.FromBase64String(FixBase64ForImage(base64));
    string connstr = @"user id=sa; password=*****"; 
    database=ImageTest; 
    server="192.168.1.104";
    SqlConnection conn = new SqlConnection(connstr);
    conn.Open();
    string query;
    query = "insert into imagetable(userid,image) values(" + userid + "," + " @pic)";
    SqlParameter picparameter = new SqlParameter();
    picparameter.SqlDbType = SqlDbType.Image;
    picparameter.ParameterName = "pic";
    picparameter.Value = bitmapData;
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.Parameters.Add(picparameter);
    cmd.ExecuteNonQuery();
    cmd.Dispose();
    conn.Close();
    conn.Dispose();
}
public static string FixBase64ForImage(string image) {
    StringBuilder sbText = new StringBuilder(image, image.Length);
    sbText.Replace("\r\n", String.Empty);
    sbText.Replace(" ", String.Empty);
    return sbText.ToString();
}

harap kamu mengerti :) ......



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa batasan basis data?

  2. Buat Tampilan di SQL Server 2017

  3. Kelola File MDF di SQL Server 2019

  4. Haruskah setiap Tabel Pengguna memiliki Indeks Berkelompok?

  5. Panggil prosedur tersimpan dengan parameter bernilai tabel dari Java