如题。
网上搜了段js:<script language="JavaScript">function toDesktop(sUrl,sName){try { var WshShell = new ActiveXObject("WScript.Shell"); var oUrlLink = WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") + "\\" + sName + ".url"); oUrlLink.TargetPath = sUrl; oUrlLink.Save(); alert('已保存桌面快捷方式,名称为:\n'+sName);} catch(e) { alert("当前IE安全级别不允许操作!"); }} </script><input name="btn" type="button" id="btn" value="加入桌面" onClick="toDesktop('http:\//www.buguge.com/','test link')">
运行之后,发现必须首先要把站点加入到受信任站点。否则就提示"当前IE安全级别不允许操作!"
我们总不能让网站的访客这么设置呀,对吧,
哪位有更好的方法,谢谢!
网上搜了段js:<script language="JavaScript">function toDesktop(sUrl,sName){try { var WshShell = new ActiveXObject("WScript.Shell"); var oUrlLink = WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") + "\\" + sName + ".url"); oUrlLink.TargetPath = sUrl; oUrlLink.Save(); alert('已保存桌面快捷方式,名称为:\n'+sName);} catch(e) { alert("当前IE安全级别不允许操作!"); }} </script><input name="btn" type="button" id="btn" value="加入桌面" onClick="toDesktop('http:\//www.buguge.com/','test link')">
运行之后,发现必须首先要把站点加入到受信任站点。否则就提示"当前IE安全级别不允许操作!"
我们总不能让网站的访客这么设置呀,对吧,
哪位有更好的方法,谢谢!
谢谢您的建议, 不过我建了个快捷方式放到了我的网站文件夹里, 欲使用下面的方式下载:
【<a href="m2.url" title="add a link to my desktop">加入桌面</a>】
结果不行, 说找不到资源。 我知道像.rar的文件可以用<a>标签下载。但这个可怎么弄呢?
代码如下. ResponseFile(Server.MapPath(@"/files/url/ChinaLoveMatch.net.url"), "ChinaLoveMatch.net.url", "application/octet-stream");
/// <summary>
/// 以指定的ContentType输出指定文件文件
/// </summary>
/// <param name="filepath">文件路径</param>
/// <param name="filename">输出的文件名</param>
/// <param name="filetype">将文件输出时设置的ContentType</param>
public static void ResponseFile(string filepath, string filename, string filetype)
{
Stream iStream = null; // 缓冲区为10k
byte[] buffer = new Byte[10000]; // 文件长度
int length; // 需要读的数据长度
long dataToRead; try
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read); // 需要读的数据长度
dataToRead = iStream.Length; HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " ")); while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
// 关闭文件
iStream.Close();
}
}
HttpContext.Current.Response.End();
}
凤凰网的我看了,其实就是用php提供了一个网站快捷方式的[凤凰网.url]文件的下载。具体的做法就是以当前网页的地址为参数,即时生成一个.url文件,然后弹出文件保存的对话框就可以了。
$filename = "fenghuangwang.url"; header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".basename($filename).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
@readfile($filename);
exit(0);