ファイルを読み取り、それをバイト配列に変換してから Base64 文字列に変換して別のコンソール アプリケーションに送信する REST サービスがあります。この部分は機能しますが、同じストリームがアプリケーションで受信されると、操作され、有効な Base64 文字列ではなくなります。一部のジャンク文字がストリームに取り込まれます。
ストリームをバイトに戻すときに受け取る例外は
入力は有効な Base-64 文字列ではありません。Base-64 以外の文字、2 つ以上のパディング文字、またはパディング文字の中に空白以外の文字が含まれています。
サービス時:
[WebGet(UriTemplate = "ReadFile/Convert", ResponseFormat = WebMessageFormat.Json)]
public string ExportToExcel()
{
string filetoexport = "D:\\SomeFile.xls";
byte[] data = File.ReadAllBytes(filetoexport);
var s = Convert.ToBase64String(data);
return s;
}
申請時:
var client = new RestClient("http://localhost:56877/User/");
var request = new RestRequest("ReadFile/Convert", RestSharp.Method.GET);
request.AddHeader("Accept", "application/Json");
request.AddHeader("Content-Type", "application/Json");
request.OnBeforeDeserialization = resp => {resp.ContentType = "application/Json";};
var result = client.Execute(request);
byte[] d = Convert.FromBase64String(result.Content);
ベストアンサー1
画像データの先頭にヘッダー情報が含まれているかどうかを確認します。
imageCode = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkC...
これにより、上記のエラーが発生します。
最初のコンマを含む、その前のすべてを削除するだけで、準備完了です。
imageCode = "iVBORw0KGgoAAAANSUhEUgAAAMgAAABkC...