for (int i = 0; i < (DataTable)ViewState["Table_RemarksDetails"]).Rows.Count; i++)
{
string url = Image1.ImageUrl;
Byte[] imgByte = GetBytesFromUrl(url);
obj_ICCommon.Userid = username;
obj_ICCommon.Modules = "Transfer-TO";
obj_ICCommon.Invoiceno = TransferNo;
obj_ICCommon.Comments = ((DataTable)ViewState["Table_RemarksDetails"]).Rows[i]["Comments"].ToString();
//obj_ICCommon.Image = imgByte;
string Result = obj_ICCommon.funinsertRemarks();
fun_InsertRemarksImage(TransferNo, imgByte, ((DataTable)ViewState["Table_RemarksDetails"]).Rows[i]["Comments"].ToString());
}
static public byte[] GetBytesFromUrl(string url)
{
byte[] b;
System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
System.Net.WebResponse myResp = myReq.GetResponse();
Stream stream = myResp.GetResponseStream();
//int i;
using (BinaryReader br = new BinaryReader(stream))
{
//i = (int)(stream.Length);
b = br.ReadBytes(500000);
br.Close();
}
myResp.Close();
return b;
}
此代码抛出无法识别的异常URL。我的网址格式如“data://image.png”。该怎么办 ?任何人都会让你知道。在过去的两天里我很挣扎。
我只想将url转换为byte
。如果我的代码错误或任何其他方式可以将url转换为byte。请评论我。提前致谢
答案 0 :(得分:0)
如果要将data
URI转换为字节图像,则输入字符串不足。给出以下示例数据URI:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
你需要:
data:
字符串。;
字符拆分以获取图像格式和编码类型。Base64
,则需要使用(2)中获得的数据将图像字符串解码回字节数组。另一方面,如果您想将图像data.png
更改为相应的base64表示,则需要对代码进行一些更改:
http
和https
,那么您的代码应该很好,因为您正在处理网络请求。如果它们是实际的文件路径,则需要处理file
URI,因此您的代码会略有不同。data:image/png;base64,
。