2017-01-31 11 views
0

Я пытаюсь преобразовать изображение в двоичный, а затем сохранить в базе данных. У меня есть код для этого, и после нескольких поисков Google большинство ответов похоже на код, который я написал. Ошибка в том, что вместо того, чтобы видеть двоичный формат в моей базе данных, я получаю System.byte[] в качестве вывода. Я также отлаживал и получил то же самое. Вот часть кодаИзображение для двоичного возврата System.byte [] вместо двоичного формата в asp.net

if (Upload.HasFile) 
{ 
    HttpPostedFile postedFile = Upload.PostedFile; 
    string filename = Path.GetFileName(postedFile.FileName); 
    string fileExtension = Path.GetExtension(filename); 
    int filesize = postedFile.ContentLength; 
    if (fileExtension.ToLower() == ".jpg") 
    { 
     Stream stream = postedFile.InputStream; 
     BinaryReader binaryreader = new BinaryReader(stream); 

     byte[] bytes = binaryreader.ReadBytes((int)stream.Length); 

     Debug.WriteLine(bytes); 
    } 
} 

Результат моей отладки дает System.byte[] как выход.

+0

'Debug.WriteLine (bytes)' будет выводить результат 'bytes.ToString()'. Для 'byte []' этот результат является именем типа. Если вы хотите увидеть фактические байты, вам придется перебирать байты [] и выводить по одному байту за раз. – user1429080

+0

System.byte [] является двоичным ... двоичное значение (0 или 1) при вычислении называется бит. Байт состоит из 8 бит (то есть 00110101) – Ben

+0

Почти наверняка ваши проблемы вызваны неправильным преобразованием ваших данных в строку, как и в вызове 'Debug.WriteLine', но вы не показываете код, который пытается для выполнения вставки, поэтому мы не можем указать, где происходит преобразование этой строки. –

ответ

0

Вы можете преобразовать массив байтов в строку для хранения БД

var storedString = Convert.ToBase64String(bytes); 

и получить массив байтов из сохраненной строки

bytes = Convert.FromBase64String(storedString); 

Если вы действительно хотите использовать двоичный формат, вы можете просмотрите класс SoapHexBinary, в частности метод Parse() и значение Value

+2

Нет необходимости * * конвертировать в строку, если база данных имеет приличный двоичный тип данных. –

Смежные вопросы