asp.net网站文件下载历史记录
asp.net website file download history
我有一个用ASP.NET开发的网站,其中包含50个不同PDF文件的链接。网站也具有身份验证功能。现在,当用户下载特定文件时,我需要用用户名和文件名填充数据库。告诉我如何做到这一点。附言:我试过用sessionvariable
和onclickevent
作为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来获取要下载的文件,这将使您能够抽象到文件的直接链接,从而控制特定文件的安全性,并将点击文件的人保存到数据库中,使您能够将文件存储在文件系统中的任何位置,即不创建这些直接链接以增加安全性)
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 输入类型按钮返回历史记录并返回顶部
- HTML5历史记录-返回上一个完整页面按钮
- asp.net网站文件下载历史记录
- 使用Ajax的后退按钮历史记录,URL中没有散列
- 历史记录和通过JavaScript修改的HTML
- Javascript:历史记录未加载页面
- 通过js设置页面历史记录和页面内容
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 如何防止浏览器在历史记录中缓存HTML
- 如何将新的stateObject添加或附加到历史记录中
- 检查浏览器后退按钮历史记录
- React-router 在添加历史记录后不会渲染组件
- 如何返回可用的历史记录状态数
- 引导选项卡不适用于历史记录.返回选项
- 记录 iframe 的历史记录
- 计算历史记录中的页数