直接给别人下载链接不经过网站的页面怎么知道被下载了多少次?

h339678413 2012-05-16 04:57:40
您好,我现在有一个自己发布的ASP.NET网站,下载的文件在网站的文件夹目录下,如果直接给别人下载链接而不经过网站的页面,怎么知道这个文件被下载了多少次?
...全文
298 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-05-17
  • 打赏
  • 举报
回复
httpHanlder你不会写?这是asp.net开发的基础知识啊

httpHanlder就是一个cs文件类。然后在web。config里面注册。iis中添加通配符应用程序映射
就可以截取任何类型的文件,根据你的下载的文件夹位置判断是不是访问了下载的文件。

例子
参见
http://msdn.microsoft.com/zh-cn/library/ms227439.aspx

licai1210 2012-05-17
  • 打赏
  • 举报
回复
httpHanlder中你判断下请求的地址和你的下载地址是否一样,如果一样,代表有人下载过。5楼不显示。。。。
h339678413 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
你该转换一下,不直接给具体链接

你提供的链接应该是中间处理程序,比如Handler

然后在httpHanlder里面,计数,然后将文件提供下载如下


C# code


//WriteFile实现下载
string fileName = "ceshi.rar";//客户端保存的文件名
string filePath = Server.M……
[/Quote]要求就是要直接给链接的?要怎么做呢?
  • 打赏
  • 举报
回复
你该转换一下,不直接给具体链接

你提供的链接应该是中间处理程序,比如Handler

然后在httpHanlder里面,计数,然后将文件提供下载如下


//WriteFile实现下载
string fileName = "ceshi.rar";//客户端保存的文件名
string filePath = Server.MapPath("keji.rar");//路径

FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();

h339678413 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
HTML code


<a onclick="downnumber()" href="24541.txt">下载</a>



JScript code


function downnumber(){
var query = "{p:'objid'}";
comm.ajaxForJson("/TestHandler.ashx", "post", query, fu……
[/Quote]

您好,我是直接给别人链接地址 http://192.168.1.100/downfile/1.rar
这样怎么获取下载次数!!!
北风大王 2012-05-16
  • 打赏
  • 举报
回复

<a onclick="downnumber()" href="24541.txt">下载</a>


function downnumber(){
var query = "{p:'objid'}";
comm.ajaxForJson("/TestHandler.ashx", "post", query, function(o) {
});
}

TestHandler.ashx文件里面写数据保存方法
h339678413 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
链接上面做个JS事件,然后AJAX异步请求下保存数据。
[/Quote]
您好,最好来个例子啊。。。说了,还是不清楚!!
h339678413 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
链接上面做个JS事件,然后AJAX异步请求下保存数据。
[/Quote]您好,具体怎么做,最好来个例子啊!
北风大王 2012-05-16
  • 打赏
  • 举报
回复
链接上面做个JS事件,然后AJAX异步请求下保存数据。
licai1210 2012-05-16
  • 打赏
  • 举报
回复
你可以在httpHanlder判断请求的url和你给的url是不是同一个,如果是同一个的话,代表有人下载
h339678413 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
你 可以写个httpHanlder

您好,具体怎么写?谢谢您!
[/Quote]
问题就是你怎么知道他访问了?
a442545770 2012-05-16
  • 打赏
  • 举报
回复
你可以在数据库里写一个字段啊,访问的时候到数据库里+1不就完了
h339678413 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你 可以写个httpHanlder
[/Quote]
您好,具体怎么写?谢谢您!
孟子E章 2012-05-16
  • 打赏
  • 举报
回复
你 可以写个httpHanlder

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧