Я недавно опубликовал вопрос, спрашивающий, как я могу вернуть файл из байта [], который я храню.
Вопрос здесь byte [] к типу файла в MVC 3
Просто для справки, я привел к сохранению двоичного файла для файла в виде строки.
Когда я возвращаю документ, я звоню по следующему коду:
var data = document.BinData.ToByteArray();
return File(data, document.MIMEType,document.Extension);
, где BinData - строка, а ToByteArray () - метод расширения, который я написал:
public static byte[] ToByteArray(this string data)
{
byte[] binData= new byte[data.Length];
for (var i = 0; i < data.Length; i++)
{
binData[i] = (byte)data[i];
}
return binData;
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я возвращаю файл, я получаю что-то вроде следующего:
Есть ли что-нибудь, что вы видите, что я делаю неправильно?
Редактировать , я изменил следующий код «Загрузить» на следующий:
var stream = BinData.InputStream;
byte[] data = new byte[BinData.ContentLength];
stream.Read(data, 0, BinData.ContentLength);
string documentData = Convert.ToBase64String(data);
где documentData - строка, которую я храню:
и код загрузки следующий:
var data = Convert.FromBase64String(document.BinData);
return File(data,document.MimeType,document.Title + document.Extension);
где document.BinData - это данные документа сверху