-1

次のコードを実行しようとすると:

byte[] arr= Convert.FromBase64String("1/50/Zoolz/Win-s9u0uco8ea0(11)/349.jpg")

次のエラーを受け取りました。

入力は有効な Base-64 文字列ではありません。これは、base 64 以外の文字、3 つ以上の埋め込み文字、または埋め込み文字の間に空白以外の文字が含まれているためです。

誰が解決できますか?

4

3 に答える 3

3

Convert.FromBase64Stringbase 64 でコード化されたものを含むファイルの名前ではなく、base 64 でコード化された文字列をパラメータとして期待します。

画像ファイルのコンテンツが base 64 でコーディングされている場合は、まずファイルを読み取ってから、次のようFromBase64Stringにそのコンテンツを呼び出す必要があります。

string baseText = File.ReadAllText(<filename>);
byte[] imageBytes = Convert.FromBase64String(baseText);
于 2013-02-05T09:01:27.873 に答える
2

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);
 }

base64文字列を画像に変換する

byte[] imageBytes = Convert.FromBase64String(imgBase64String);
MemoryStream ms1 = new MemoryStream(imageBytes);
Image img = Image.FromStream(ms1);
于 2013-02-05T08:59:22.503 に答える
0

Base 64 でコード化された文字列を使用していません。これは単なる通常の文字列です。テストを作成しようとしている場合は、次のコードを使用して文字列を base64 に変換できます。

  string stringToBeEncoded = "some string";
  byte[] byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(stringToBeEncoded);
  string base64String = System.Convert.ToBase64String(byteArray);
于 2013-02-05T09:02:14.057 に答える