Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để chuyển đổi hình ảnh sang mảng byte chỉ sử dụng javascript để lưu trữ hình ảnh trên máy chủ sql?

tôi đã tìm thấy một giải pháp. :)

trong tệp javascript html, trước tiên hãy chuyển đổi hình ảnh đã tải lên sang định dạng hình ảnh base64 bằng cách sử dụng mã sau.

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;
} 

vì vậy chúng tôi nhận được mã base64 của hình ảnh được tải lên trong dataURL .

GỬI NGAY MÃ BASE64 NÀY (dataURL ) sang dịch vụ web và chuyển đổi chuỗi base64 thành mảng byte bằng cách sử dụng mã sau và lưu vào máy chủ sql

c # code - để chuyển đổi base64 thành byte arry và lưu trữ trên 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();
}

hy vọng bạn hiểu :) ......



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chạy nhiều lệnh SQL trong một kết nối SQL?

  2. Cách thực thi một trình kích hoạt chỉ khi một cột cụ thể được cập nhật (SQL Server)

  3. SQL Server SP - Truyền tham số cho danh sách mảng IN?

  4. Mệnh đề đầu ra của SQL Server thành một biến vô hướng

  5. Các bản sửa lỗi cho sự cố tạo lại chỉ mục trực tuyến SQL Server 2012 &2014