asp.net网站文件下载历史记录

asp.net website file download history

本文关键字:历史 记录 文件下载 网站 net asp      更新时间:2023-09-26

我有一个用ASP.NET开发的网站,其中包含50个不同PDF文件的链接。网站也具有身份验证功能。现在,当用户下载特定文件时,我需要用用户名和文件名填充数据库。告诉我如何做到这一点。附言:我试过用sessionvariableonclickevent作为pdf图标,但对于50个以上的pdf文件来说太乱了。

您必须创建一个下载处理程序。您可以循环浏览服务器上的物理文件,或者将它们编码到某种数据库中。

在该处理程序中,您需要一些方法来记录"单击"函数
注意:这不包括取消的下载

标记

<asp:HyperLink id="hyperlink1" ... />

背后的代码

hyperlink1.NavigateUrl = "Downloader.ashx?file="+"filename";

处理机

<%@ WebHandler Language="C#" Class="Downloader" %>
using System;
using System.Web;
public class Downloader : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
        // create a file response
        HttpResponse r = context.Response;
        r.ContentType = // set the appropriate content type;
        string file = context.Request.QueryString["file"];
        // *****
        // LOG THE REQUEST
        // *****
        // write out the file
        r.WriteFile(...);
    }
    public bool IsReusable {
        get {
            return false;
        }
    }
}

您可以创建一个http处理程序,用于请求所有文档。

例如,你会在页面上放的链接是http://yoursite/pdf?name=MyFancyPDf

在处理程序中,您可以对pdf进行任何必要的处理(包括日志记录),然后将其提供给用户

我会创建一个httpHandler来获取要下载的文件,这将使您能够抽象到文件的直接链接,从而控制特定文件的安全性,并将点击文件的人保存到数据库中,使您能够将文件存储在文件系统中的任何位置,即不创建这些直接链接以增加安全性)