С точки зрения подачи файла через Интернет процесс точно такой же для изображений, как и для любого типа файла. Единственным отличием будет тип контента в заголовке ответа. (Для PDF это будет application/pdf
.)
Поймите, что в HTTP нет абсолютно никакого понятия "файлы". Все, что у вас есть, это запросы и ответы, каждый из которых имеет заголовки и данные. Будь то изображение, PDF, веб-страница, что угодно ... структура ответа, доставляемого клиенту (браузеру), абсолютно одинакова. Заголовки сообщают браузеру, что это за данные, а также различные другие мета-данные о них, и эти данные являются просто необработанными данными отправляемого «файла». Браузер может выбрать, что делать с данными.
В случае веб-страниц браузер обычно просто отображает его. В случае других или неизвестных типов контента браузер обычно предлагает пользователю сохранить его в виде файла. (Обратите внимание, что имя файла также может быть предложено в заголовке ответа.)
Редактировать: В ответ на ваш комментарий к ответу @Pete M ...
Процесс все еще очень похож. «Файлы» в качестве вложений электронной почты работают почти так же, как «файлы» по HTTP. По сути, все, что вам нужно, это поток данных и тип контента. При создании объекта MailMessage
обратите внимание на объект Attachment
. При извлечении файла PDF из базы данных (как при извлечении изображений из базы данных для предоставления клиенту браузера) установите для потока данных значение ContentStream
на объекте вложения. Затем также установите ContentType
(снова application/pdf
) и Name
на объекте вложения, и вы сможете отправить его как часть MailMessage
.
Возможно, вам также потребуется установить дополнительные параметры на Attachment
. Тестирование покажет, насколько явно вы должны быть с такими вещами, как кодирование. Если вы можете поделиться каким-либо кодом при попытке сделать это, мы можем помочь вам с этим кодом.