无法成功使用 Convert.FromBase64String on ... C#/.NET Core 中的 base64string

cannot succeed in using Convert.FromBase64String on... base64string in C#/.NET Core

我正在使用 Cropper 在 Web 应用程序中裁剪图像,然后将结果作为 base64 字符串发送到我的 ASP.NET Core 控制器。到目前为止,我还没有弄清楚正确发送它所必需的数据类型,但与此同时 dynamic 或自定义数据类型有效;

我裁剪图片,然后尝试发送;

var base64string = cropperWidgetInstance.getCroppedCanvas().toDataUrl('image/jpeg');
$http.post('url', { data: base64string });

在我的 ASP.NET 控制器中,我正在接收这样的数据;

public async Task<IActionResult> SaveCroppedImage([FromBody] dynamic data) {

}

这为我提供了一个名为 data 的对象,其中包含一个名为 data 的 属性 本身,其中包含这样一个字符串;

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAGTAswD ....

这看起来应该可以正常工作,但是当我尝试使用时

Convert.FromBase64String(data.data)

它给了我例外

icrosoft.CSharp.RuntimeBinder.RuntimeBinderException: The best overloaded method match for 'System.Convert.FromBase64String(string)' has some invalid arguments

我真的不知道这里出了什么问题。我找不到任何关于该主题的文章不遵循与使用 Convert.FromBase64String.

完全相同的步骤

您有以下形式的数据:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwM
DBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDA
QMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
QEBAQEBAQEBD/wAARCAGTAswD ....

如果你想在 FromBase64String 中转换它,那么你必须从你的字符串中删除 "data:image/jpeg;base64," 然后将它转换为 FromBase64String

你可以像下面的代码一样替换它

string strdata = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMC.... 

var strstring = strdata.replace("data:image/jpeg;base64,", '');

然后尝试转换它

Convert.FromBase64String(strstring);

它对我有用试试这个..