javascript - 如何使用javascript将图像转换为字节数组,仅将图像存储在sql服务器上?

标签 javascript sql-server image arrays

我正在努力使用客户端脚本将图像转换为字节数组。我必须将图像转换为字节数组,并将该数组传递给Web服务,以便Web服务可以将图像保存在sql server中。任何人请帮助我。

最佳答案

我找到了一个解决方案。 :)

在html javascript文件中,首先使用以下代码将上传的图像转换为base64图像格式。

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

所以我们在dataURL中得到了上传图片的base64代码。

现在将此 BASE64 代码 (dataURL) 发送到 Web 服务,并使用以下代码将 Base64 字符串转换为字节数组,并保存到 SQL Server

C# 代码——用于将 Base64 转换为字节数组并存储在 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();
}

希望你理解:)......

关于javascript - 如何使用javascript将图像转换为字节数组,仅将图像存储在sql服务器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258932/

相关文章:

html - Internet Explorer 中图像的大小问题

image - 一种将 PSD 格式转换为 Gimp 可以读取的格式的方法

javascript - 火狐 40+ : what does the "Found hi-entropy localStorage" message mean?

javascript - 如何解决 eslint "Generic Object Injection Sink"错误?

iPhone 设备图片

sql - 我们可以在使用 DBCC CHECKIDENT 重新启动标识列计数后回滚到原始状态吗?

c# - 日期时间查询错误

javascript - 进度条使用样式更新进度

javascript - YouTube API Fetch 发送响应,但我无法访问项目

sql-server - 防止批量插入时锁定整个表