如何在C#中使用ASP.NET创建一个简单的文件下载计数器?例如,当用户点击并下载文件时,我想用+1更新它并将其文件名保存到DB。当用户onmouse通过链接我想显示一个文件下载时间的工具提示。但如果用户取消下载状态,它不会更新它。
答案 0 :(得分:0)
如果除非文件已完全下载,否则您不想更新,则必须编写自己的generic handler,在处理结束时更新数据库。
对于数据库,我建议您使用一个表存储每个下载事件,另一个存储有关每个文件的信息,例如
tblDownloads
************
DlID (GUID, not nullable, primary key)
Date (datetime, not nullable)
FileID (GUID, not nullable)
tblFiles
********
FileID (GUID, not nullable, primary key)
Url (nvarchar(255), not nullable)
Title (nvarchar(255), not nullable)
Description (nvarchar(max))
(示例数据类型等命名为它们在MSSQL中的名称......)
要获取特定文件的下载次数,您只需查询数据库
即可SELECT COUNT(DlID) FROM tblDownloads WHERE FileID = @FileID
其中@FileID
是一个带有您感兴趣的文件ID的参数。如果您想循环输出所有文件的网址,可以查询
SELECT
f.FileID, f.Url, f.Title, f.Description, COUNT(d.DlID) AS DownloadCount
FROM tblFiles f INNER JOIN tblDownloads d ON f.FileID = d.FileID
GROUP BY f.FileID, f.Url, f.Title, f.Description