![](/img/trans.png)
[英]Cannot pass image Base64 string from JavaScript to C# in Blazor server app
[英]Is it acceptable to pass a base64 string from the client to the server to utilize?
從客戶端向服務器傳遞base64字符串進行保存是否可以接受?
客戶端保存我有創建BASE64字符串的代碼...
數據:圖像/ png; base64,iVBORw0KGgoAAAANSUh .....等....
但是,當我嘗試轉換此服務器端時,出現錯誤,表明輸入不是有效的Base-64字符串。
在我的C#代碼中,我有:
// Data Type
public List<object[][]> MyData;
var imgStr = MyData[0][0].ToString();
var bytes = Convert.FromBase64String(imgStr); // Get error here
是否有更好的方法從客戶端幻燈片中獲取圖像並將其傳遞給服務器端使用?
您需要從字符串中刪除data:image/png;base64,
。 那就是元數據。 實際的base64編碼字節在逗號后開始。
在@benstopics響應之后,通過分割逗號然后取第二部分,例如,剝離元數據可能更容易。
String base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUh.....";
base64 = base64.split(',')[1];
Base64由字符AZ
, az
, 0-9
, +
和/
,不包括必須放在末尾的=
字符的數量(有關Base64 * encoding的最復雜部分),
正如您在數據字符串中看到的那樣, data:image/png;base64,
前綴只是元數據 ,而不是任何有效的Base64編碼字符串的一部分。 您可以通過以下方法將其從字符串中刪除:
String base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUh.....";
base64 = base64.substring(22, base64.length());
如果您希望它適用於任何圖像類型,則需要使用正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.