Сохранить файл из поля изображения базы данных - PullRequest
2 голосов
/ 31 августа 2009

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

Код, который я использую, показан ниже. UploadFiles - это мой класс, который содержит данные, идентификатор, имя и т. Д.

    public void DownloadUploadedFile(Page sender, UploadFiles uf)
{
    sender.Response.ContentType = uf.FileType; // the binary data
    sender.Response.AddHeader("Content-Disposition", "attachment; filename=" + uf.FileName);
    sender.Response.BinaryWrite(uf.FileData);
}

1 Ответ

2 голосов
/ 31 августа 2009

Похоже, у вас слишком много остальной части страницы, переходящей к клиенту. Вы должны очистить ответ и закрыть его впоследствии; попробовать:

sender.Response.Clear();
sender.Response.ContentType = uf.FileType; // the binary data
sender.Response.AddHeader("Content-Disposition", "attachment; filename="
         + uf.FileName);
sender.Response.BinaryWrite(uf.FileData);
sender.Response.Close();

В качестве альтернативы используйте для этого обработчик (ashx), поскольку он не включает обычную разметку страницы.

...