Как отправить любой тип файла через перенаправление в ASP.NET?

2

В настоящее время у меня есть TreeView, показывающий каталог на веб-странице. Я не думаю, что вы можете записывать события click на Node, поэтому вместо этого я создаю ссылку навигации на ту же страницу, которая обрабатывает параметр (путь).

Я пробовал пару вещей:


Response.ContentType = "text/txt";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.Write(file.ToString());
Response.End();

^^ Код выше действительно работает только для текстовых файлов (или любого другого расширения, которое я хочу определить). ^^


Нижеприведенный код записывает файл в виде набора символов в браузер.

if (!IsPostBack)
{
    string path = Request["path"];

    if ((path != "") && (path != null))
    {
        Response.TransmitFile(path);
        Response.End();
    }
}

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

Заранее благодарим за помощь!

  • 0
    Вам необходимо установить тип контента и расположение.
Теги:
file
treeview
download

2 ответа

4

Просто он работал, я думаю...

System.IO.FileInfo file = new System.IO.FileInfo(path);

Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
2

Это лучшая статья, которую я могу найти: http://www.west-wind.com/weblog/posts/76293.aspx

Файл на диске:

Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename=Image.jpg");
Response.TransmitFile(Server.MapPath("~/images/image.jpg"));
Response.End();

Сгенерированный файл:

Bitmap bmp = GenerateImage();     
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename=Image.jpg");     
bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню