//解析json串
JObject JsonTrackData = (JObject)JsonConvert.DeserializeObject(TrackData);
//获取imageInfo
string imgStrData = JsonTrackData["result"]["imageInfo"].ToString();
//得到图片字节码
//Base6解码
byte[] bytes_data = Convert.FromBase64String(imgStrData);
string urlData = Server.MapPath("~/TrackImage/Data.png");
MemoryStream stream1 = new MemoryStream(bytes_data);
Bitmap btm = new Bitmap(stream1);
stream1.Position = 1333300;
System.Drawing.Image imgData = Image.FromStream(stream1);//报错内存不足
imgData.Save(urlData, System.Drawing.Imaging.ImageFormat.Png);//xxx.jpeg为文件名
<img src="data:image/jpeg;base64,这里加还没有解码的imgStrData">
将图像以二进制流形式存储到数据库中示例
protected void imgbtnCreate_Click(object sender, ImageClickEventArgs e)
{
string PerHomeName=tbPerHomeName.Text;//获取空间名
string PerHomeSign=txtPerSign.Text; //获取个性签名
string imgPath = uploadFile.PostedFile.FileName;//获取文件件名
string lastName = imgPath.Substring(imgPath.LastIndexOf(".") + 1);//获取文件上传后缀名
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
conn.Open();
if (uploadFile.PostedFile.FileName != "" && lastName.ToLower() == "jpg" || lastName.ToLower() == "gif")
{
if (uploadFile.PostedFile.ContentLength > 40960)
{
Response.Write("<script language='javaScript'>alert('你上传的图片超过了40KB!')</script>");
return;
}
int imgLength = uploadFile.PostedFile.ContentLength;//获取上传文件大小
Byte[] imageData = new Byte[imgLength]; //定义Byte数组
HttpPostedFile hp = uploadFile.PostedFile;//创建访问客户端上传文件的对象
Stream imagestream = hp.InputStream;//创建数据流对象
//将图片数据放到image数据对象实例中,其中0代表数组指针的起始位置,imagelength表示要读取流的长度
imagestream.Read(imageData, 0, imgLength);
string sqlstr = "insert into PerHomeDetail(PerHomeName,PerHomeSign,PerHomeLogo)values('" + PerHomeName + "','" + PerHomeSign + "',@ImageData)";
SqlCommand comm = new SqlCommand(sqlstr, conn);
comm.Parameters.Add("@ImageData", SqlDbType.Image);
comm.Parameters["@ImageData"].Value = imageData;
comm.ExecuteNonQuery();
conn.Close();
Response.Write("<Script>alert('个人空间创建成功!')</Script>");
}
else
{
Response.Write("<script>alert('上传头像不能为空,且格式必须为gif或jpg!');location='javascript:history.go(-1)'</script>");
}
}
转自:http://bbs.csdn.net/topics/390932070
将图片分多个子包吧,每个包一个标识,分包下载
没人回自己顶一下,byte[] bytes_data 里面长度是9万多,应该不是很大呀
问题解决了,因为单个数据是在太大,直接绑定在页面的里,以前都不知道还有这种写法