2015-12-08 2 views
0

У меня есть проект, в котором пользовательская структура, написанная на PHP, использует file_get_contents для чтения файлов изображений и размещения выходной строки в БД, который затем используется для отображения изображения пользователю путем чтения из БД.Альтернатива PHP file_get_contents в C#

Теперь я делаю webservice (webAPI в C#), с помощью которого пользователь отправляет изображение в байт [] из мобильного приложения. и мне нужно найти точный альтернативный mathod для file_get_contents для C#.

Искал через Интернет и узнал два пути.

  1. byte[] fileData = File.ReadAllBytes(filePath); string sContents = System.Text.Encoding.ASCII.GetString(fileData);

  2. StreamReader sr = new StreamReader(filePath); string sContentsa = sr.ReadToEnd(); sr.Close();

из образца изображения файла вывода для различных методов:

file_get_contents gives : {�PNG\r\n\n\0\0\0\rIHDR\0\0�\0\0�\b\0\0\0���(\0\0\0\tpHYs\0\0\v\0\0\v\0��\0\0\nOiCCPPhotoshop ICC profile\0\0xڝSgTS�} 

First c# method: ?PNG\r\n\n\0\0\0\rIHDR\0\0?\0\0?\b\0\0\0???(\0\0\0\tpHYs\0\0\v\0\0\v\0??\0\0\nOiCCPPhotoshop ICC profile\0\0x?SgTS 

second c# method: �PNG\r\n\n\0\0\0\rIHDR\0\0�\0\0�\b\0\0\0���(\0\0\0\tpHYs\0\0\v\0\0\v\0��\0\0\nOiCCPPhotoshop ICC profile\0\0xڝSgTS� 

Так выглядит как второй метод C# генерирует тот же результат , поэтому здесь возникает проблема: при чтении значение из БДА на выходе показывает, как

"?PNG\r\n\n\0\0\0\rIHDR\0\0?\0\0?\b\0\0\0???(\0\0\0\tpHYs\0\0\v\0\0\v\0??\0\0\nOiCCPPhotoshop ICC profile\0\0x?SgTS?

Сегодня его уже 3 дня, так как я застрял в этой глупой проблеме, я надеюсь ..

кто с решением этой проблемы или целым новым подход действительно заметен. [Только часть я не могу изменить это PHP код]

+0

ли ваш попробовал 'File.ReadAllText (строка путь) '? –

+0

Это проблема кодирования? Вероятно, почему первый метод «не работал» заключается в том, что вы указали ASCII, а второй метод будет использовать UTF-8 по умолчанию (я думаю). Может быть, у вас другие несоответствия в кодировке в другом месте? –

+0

Похоже, это может помочь с UTF-аютами http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – RiggsFolly

ответ

0

Да, кажется, какая-то проблема с набором кодирования,

Это работало для меня

StreamReader sr = new StreamReader(filePath); 
string sContentsa = sr.ReadToEnd(); 
sr.Close(); 
Смежные вопросы