當我嘗試執行以下操作的代碼:Convert.FromBase64String異常
byte[] arr= Convert.FromBase64String("1/50/Zoolz/Win-s9u0uco8ea0(11)/349.jpg")
我收到以下錯誤:
輸入不是有效的Base-64字符串,因爲它含有非鹼64個字符,多於兩個填充字符或填充字符中的非空白字符。
誰能解決它?
當我嘗試執行以下操作的代碼:Convert.FromBase64String異常
byte[] arr= Convert.FromBase64String("1/50/Zoolz/Win-s9u0uco8ea0(11)/349.jpg")
我收到以下錯誤:
輸入不是有效的Base-64字符串,因爲它含有非鹼64個字符,多於兩個填充字符或填充字符中的非空白字符。
誰能解決它?
您沒有將base64string傳遞給該方法,而是先傳遞它的路徑,然後將該圖像轉換爲base64string,然後調用該字符串的方法。
轉換圖像到base64string
using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
string base64 = Convert.ToBase64String(buffer);
}
轉換base64string到圖像
byte[] imageBytes = Convert.FromBase64String(imgBase64String);
MemoryStream ms1 = new MemoryStream(imageBytes);
Image img = Image.FromStream(ms1);
Convert.FromBase64String
期望一個底座64編碼的字符串作爲參數,的含文件東西不是名稱被基地64編碼。
如果圖像文件內容是基地64編碼,您要高度重視首先讀取該文件,然後調用FromBase64String
上的內容,如:
string baseText = File.ReadAllText(<filename>);
byte[] imageBytes = Convert.FromBase64String(baseText);
您沒有采用基地64編碼字符串,它只是一個普通的字符串。如果您嘗試創建測試,則可以使用以下代碼將字符串轉換爲base64。
string stringToBeEncoded = "some string";
byte[] byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(stringToBeEncoded);
string base64String = System.Convert.ToBase64String(byteArray);
爲什麼人們仍然使用ASCII編碼/解碼的東西... –
你想做什麼? –
你的字符串看起來像一個jpg文件的路徑。你想轉換什麼? –
我想通過Encoding.UTF8.GetString(arr).ToLower(); –