【发布时间】:2025-12-20 03:45:06
【问题描述】:
我正在尝试使用 ASP.net/C# 为类似的东西设计一个系统。
用户为下载一些内容(文件-mp3/PDF、doc 等)付费。我应该能够跟踪用户下载的字节数。如果下载的字节数与服务器上的字节数匹配,我应该在 DB 中设置一个标志(告诉下载成功并阻止他们再次下载文件/要求他们再次支付下载费用)。如果下载不完整,他们应该能够再次下载文件而无需再次付费(因为不会设置标志)。
有什么方法可以跟踪客户端成功下载的字节数?
当我在我的 WinXP 机器上看到一个文件大小时,我看到两个大小(大小,磁盘大小)。我应该考虑哪一个?它会因一个操作系统而有所不同吗?
【问题讨论】:
-
我相信磁盘上的大小是你想要的。关于监控下载的好问题。也有兴趣看看其他人的答案。
-
您可以看出您发送了字节。 Http 没有提供 100% 确定收到它们的方法。
-
用户何时为内容付费?是在下载之前还是之后?因为如果我为某些文件付费,我希望能够在需要时下载它……大约 2 种尺寸。文件大小=文件长度(文件中的字节数)磁盘上的文件大小=文件占用的簇数*长度(簇)您只需要文件大小,因为磁盘上的大小取决于文件系统和簇大小。跨度>
-
有没有办法改变问题的本质?我认为没有办法阻止某人复制文件 - 因此为什么将文件限制为一次下载?另一种方法可能是以独特的方式使特定用户可以使用文件(例如附加 GUID),并在有限的时间内提供下载?改变问题的机会有多大?你能告诉我们关于解决方案的其他限制吗?
-
@Adrian:我们只是说我们正在使用某种数字锁与该用户 ID 结合使用该文件。是的,我已经将它实现为 GUID。并且一旦下载成功,如果用户想再次下载内容,他将不得不再次付费,因为内容是时间敏感的,并且每天/每小时都会更新
标签: asp.net http file httphandler httpmodule