繁体   English   中英

在使用C#解码Base64字符串之前,是否要删除data:image / jpeg; base64?

[英]Do you remove the data:image/jpeg;base64, before decoding Base64 string using C#?

我正在尝试转换从canvas元素中调整大小的图像生成的Base64编码的字符串,并且在使用Convert.FromBase64()进行转换时遇到以下错误

输入内容不是有效的Base-64字符串,因为它包含非Base 64字符,两个以上的填充字符或填充字符中的非法字符。

编码数据看起来像这样,以=开头

data:image / jpeg; base64,/ ... =

我不太了解的是,当我执行Convert.FromBase64()时,是否需要剥离data:image / jpeg; base64的前缀然后解码其余部分?

我用来解码的代码如下

string base64String = newinput.Value.ToString();

// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
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);

string newFile = Guid.NewGuid().ToString() + ".jpg";
image.Save(Path.Combine(Server.MapPath("~/Assets/") + Request.QueryString["id"] + "/", newFile), ImageFormat.Jpeg);

基本上,我已将字符串转换为图像并保存在服务器上。 如您所见,我正在使用C#

有任何想法吗?

我是否需要剥离data:image / jpeg; base64的前缀,然后解码其余部分?

是的-前缀不是base64编码的文本,只是说其余部分 base64编码的(以及mime类型是什么)。

我们不完全知道如何获取数据,但是请记住,请首先检查数据URL 是否声称是base64编码的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM