我有一个 div 里面有一个图像。在 javascript 中,我得到了 div,并将 div 的 innerHTML 发送到服务器。javascript在下面被过度简化了:
function uploadImage() {
var imageInfo = document.getElementById('divImage').innerHTML;
PageMethods.uploadImage(imageInfo, onSuccess, onError);
} //end function
我目前在服务器上接收这个作为字符串。
[WebMethod]
public static string uploadImage(string base64FileString){...}
结果如下:
<img height="150" width="150" title="name.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...../>
我需要将此图像保存到磁盘,我不知所措。据我了解,我可以通过“base64”(使用拆分)并使用以下内容创建图像:
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64FileString);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
image.Save(.....);
但这似乎非常低效。有没有更好的方法从字符串创建图像,接收字符串的更好方法,或者传递字符串的更好方法?