您好,我现在有一个自己发布的ASP.NET网站,下载的文件在网站的文件夹目录下,如果直接给别人下载链接而不经过网站的页面,怎么知道这个文件被下载了多少次?

解决方案 »

  1.   

    你可以在httpHanlder判断请求的url和你给的url是不是同一个,如果是同一个的话,代表有人下载
      

  2.   

    链接上面做个JS事件,然后AJAX异步请求下保存数据。
      

  3.   


    <a onclick="downnumber()" href="24541.txt">下载</a>
    function downnumber(){
     var query = "{p:'objid'}";
      comm.ajaxForJson("/TestHandler.ashx", "post", query, function(o) {
                 });
    }TestHandler.ashx文件里面写数据保存方法
      

  4.   


    您好,我是直接给别人链接地址    http://192.168.1.100/downfile/1.rar
    这样怎么获取下载次数!!!
      

  5.   

    你该转换一下,不直接给具体链接你提供的链接应该是中间处理程序,比如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();
      

  6.   

    httpHanlder中你判断下请求的地址和你的下载地址是否一样,如果一样,代表有人下载过。5楼不显示。
      

  7.   

    httpHanlder你不会写?这是asp.net开发的基础知识啊httpHanlder就是一个cs文件类。然后在web。config里面注册。iis中添加通配符应用程序映射
    就可以截取任何类型的文件,根据你的下载的文件夹位置判断是不是访问了下载的文件。例子
    参见
    http://msdn.microsoft.com/zh-cn/library/ms227439.aspx