开发者

ASP.Net Count Download Clicks

I thought that this was easier…

I have a asp:hyperlink control, with target=”_blank”, pointing to the file I want the user to download. My plan is to track the number of times, the users click on this link.

I thought in placing it in ajax update panel, to catch the postback and avoid full page refresh.

However, hyperlink doesn’t have a onClick method.

On the other hand I could use a linkbutton, which h开发者_运维百科as a onClick built in. But It’s harder to make the file open in a new window… and I would also have to do something like:

Response.AppendHeader("Content-Disposition","attachment; filename=myImage.jpg");

But I heard that the above approach has some problems with PPT, PPTX, PPS, PPSX…

What is you'r opinion on this? How and why, would you do it?


You might want to implement an IHttpHandler to track your downloads, as shown in this article for example.

Basically your handler's ProcessRequest() method would look something like this:

public void ProcessRequest(HttpContext context)
{
    string file = context.Request.QueryString["file"];

    // set content type and header (PDF in this example)
    context.Response.ContentType = "application/pdf";
    context.Response.AddHeader(
         "Content-Disposition", "attachment; filename=" + file);

    // assuming all downloadable files are in ~/data
    context.Response.WriteFile(Server.MapPath("~/data/" + file));
    context.Response.End();
}

Then your hyperlink to download a file would be like this:

<a href="/MyApp/MyHandler.ashx?file=someFile.pdf">...</a>


You can add an onclick to an asp hyperlink like so:

aHyperlinkControl.Attributes.Add("onclick", "jsCallToSendCountToServer();");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜