入力はBase64以外の文字が含まれているため、有効なBase64文字列ではありません。質問する

入力はBase64以外の文字が含まれているため、有効なBase64文字列ではありません。質問する

ファイルを読み取り、それをバイト配列に変換してから 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...

おすすめ記事