V tom případě do projektu přidejte novou položku typu Generic Handler a dovitř napište (do metody ProcessRequest nebo jak se jmenuje):
'ověřit identitu uživatele
If Not context.User.Identity.IsAuthenticated Then
Throw New HttpException(403, "Forbidden")
End If
'nastavit hlavičku (aby prohlížeč věděl, že soubor má stáhnout a ne zobrazit)
context.Response.ContentType = "application/octet-stream"
context.Response.AddHeader("Content-Disposition", "attachment; filename=""soubor.zip""")
'poslat soubor
context.Response.WriteFile(IO.Path.Combine(context.Request.PhysicalApplicationPath, "App_Data\soubor.zip"))
Soubory dejte do složky App_Data, aby se k nim nedalo zvenčí dostat jinak než přes ten handler. Jinak handler můžete volat s parametry v URL, asi budete chtít dát parametr file=název_souboru, hodnoty parametru najdete přes context.Request.QueryString("parametr"). Pro stažení souboru dejte link na název_handleru.ashx?file=soubor.zip třeba.
|