C# - байтовые массивы и расширения файлов

У меня есть загруженный массив байтов, в котором отсутствует расширение файла. Мне нужно дать этому файлу расширение, которое в моем случае всегда будет.gif, и преобразовать обратно в байтовый массив.

Я делаю первый шаг так:

FileContentResult file = File(imageList.Single(), "image/gif");

Я не уверен, что делать дальше. FileContentResult имеет параметр FileContents, который имеет тип байтового массива. Я пытался использовать это, но оно не содержит расширения в данных.

Содержат ли байтовые массивы тип расширения? Я впервые работаю с одним из них, поэтому мне не хватает понимания того, что они из себя представляют и что я могу с ними сделать.

2 ответа

image/gif - это тип пантомимы, используемый в Интернете, чтобы сообщить клиенту, как интерпретировать набор данных.

Это не требуется, если вы сохраняете данные на диск.

Я думаю, что, возможно, ваша формулировка проблемной области немного вводит в заблуждение. Когда вы используете термин "загруженный", вы имеете в виду "извлеченный посредством http-соединения" или "чтение (прошедшее время) из файла на диске или из поля базы данных"??

Я думаю, что это последний случай - поэтому я продолжу.

Необработанные данные, полученные таким способом, НЕ будут иметь имя файла. Зачем??? Имя файла - это указатель на некоторые данные в файловой системе. Если у вас есть коричневые бумажные пакеты с пометкой "зеленые вещи", и вы случайно вытаскиваете из сумки яблоко, внутри этого яблока есть внутренняя связь, которая связывает это яблоко (необработанные данные) с сумкой с пометкой "зеленые вещи" (указатель),

Поскольку ваш код ссылается на FileContentResult, я предполагаю, что вы используете MVC и находитесь в коде контроллера, пытаясь доставить массив байтов обратно в браузер.

Если вы посмотрите на ссылку ниже, вы можете обнаружить, что объект FileContentResult имеет аккуратное свойство с именем "FileDownloadName". Здесь вы хотите установить имя файла - добавьте расширение.

http://msdn.microsoft.com/en-us/library/system.web.mvc.filecontentresult(v=vs.118).aspx

Другие вопросы по тегам