我想实现一个功能,点击一个按钮下载图片,禁止用右键的另存为.因为我要统计下载的人数.所以用按钮的点击次数来统计下载的人数.不用javascrpt,只用C#能实现不?
好像图片下载的方式和文件不一样.如果是RAR格式直接把url放在herf里就可以了.图片好像不行.效果就要想霏凡下载软件的时候这样,一点就弹出另存为,或者是下载工具来下载就可以了.不过文件得换成图片
好像图片下载的方式和文件不一样.如果是RAR格式直接把url放在herf里就可以了.图片好像不行.效果就要想霏凡下载软件的时候这样,一点就弹出另存为,或者是下载工具来下载就可以了.不过文件得换成图片
你至少要改后缀才行..如果你要做统计功能的话,可以用一个专门的aspx页面来输出图片,可以在访问图片的时候便可以计数了..
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End();
这个是在网上找到的.但是看不太懂.谁能看看,这个是不是实现那个功能的阿?
//可以在这里添加统计代码
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End(); SailBig.jpg是你要下载的图片.
假设上面的代码的页面文件名为:down.aspx你可以这样写.down.aspx?image=SailBig.jpg;
可以考虑用body oncontextmenu="return false"
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End();
这个是在网上找到的.但是看不太懂.谁能看看,这个是不是实现那个功能的阿?
------------------------
这个不是从数据库读出来的方法???
只屏蔽掉右键不行??? oncontextmenu="window.event.returnValue=false"
Response.AppendHeader("Content-Disposition", "attachment; filename=tt1.jpg");
Response.TransmitFile(Server.MapPath("~/image/tt1.jpg"));
Response.End();
没问题,实现了搂住的效果,
右键屏蔽:javascript,重写页面鼠标右键单击的event.并且取消冒泡事件.
如果要用<image>的话〉〉〉那就不会了
string filepath = DownloadFileName; // Identify the file name.
string filename = System.IO.Path.GetFileName(filepath); Response.Clear(); // Specify the Type of the downloadable file.
Response.ContentType = "application/octet-stream"; // Set the Default file name in the FileDownload dialog box.
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename); Response.Flush(); // Download the file.
Response.WriteFile(filepath);
一、显示给用户的只是一个缩略图或加了水印的图片,这张图片不限制用户另存为,或用javascript限制一些初级用户。二、当用户点击“下载图片”按钮时,利用服务端代码实现下载,最简单的方法是Response.Redirect("pic url"); 但更安全的是用数据流的方式:using System.IO;/// <summary>
/// 以流的方式提供下载
/// </summary>
/// <param name="path">文件路径</param>
protected void DownLoad(string path)
{
FileInfo file = new FileInfo(path);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(file.FullName, System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", file.Length.ToString());
Response.WriteFile(file.FullName);
Response.Flush();
Response.End();
}
2、从内存中将数据以STREAM方式响应用户请求。
3、客户端获取STREAM,最后拿到图片。