2

私は大きな問題を抱えています。
画像をアップロードして取得しbyte[]ました。
データベースにNVARCHAR(MAX)フィールドがあり、変更できません。
何をしてデータベースに保存しても、後で画像として取得することはできません。
試してみました。ToString()が機能しません。
私はこれを試しました:

private byte[] GetBytes(string str)
        {
            byte[] bytes = new byte[str.Length * sizeof(char)];
            System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
            return bytes;
        }
static string GetString(byte[] bytes)
        {
            char[] chars = new char[bytes.Length / sizeof(char)];
            System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
            return new string(chars);
        }

そして、それを入れようとすると、RadBinaryImage何も得られません。
これはエラーです:

 The provided binary data may not be valid image or may contains unknown header
4

1 に答える 1

9

直接変換するのではなく、エンコードすることをお勧めします。

私は過去にRadix-64エンコーディングをうまく使用しました。そのためのC#メソッドがありますが、私はそれを使用していません:

Convert.ToBase64String(byteArrayForImage);

http://msdn.microsoft.com/en-us/library/dhx0d524.aspx

次に、逆変換を使用してバイト配列を取得できます。

Convert.FromBase64String(stringFromDB)
于 2013-02-12T15:01:03.743 に答える