asp.net mvc在网页上实现客户点击时创建到此网站的桌面快捷键功能

    xiaoxiao2021-03-25  163

    今日老板要求实现在网站上,当用户点击时,可以在用户电脑的桌面上创建一到网站快捷方式的快捷键。

    在网上查阅相关资料,一种方法是javascript实现,但是要用到activex控件,这IE上才有,用IE的貌似很少了吧,而且activex控件没几个人愿意开啊。放弃。

    其他的说的asp.net创建快捷方式的方法,看着感觉都是要在桌面上创建一文件,这软件才有这权限吧。在网页上谁肯给你这权限。于是也放弃了。

    最后感觉没招了,就问老板,在哪来看的,有这种NB功能。原来是自己在桌面创建个到自己网站的快捷方式,然后做个下载链接,让用户下载到桌面。这样来实现。这一想,还

    真可以。于是就来实现。仔细研究了下,在桌面创建了一个快捷方式,然后用editplus打开后,看到有如下代码:

    [{000214A0-0000-0000-C000-000000000046}] Prop3=19,2 [InternetShortcut] URL=http://jiaogui.jinrimianshi.com/ IDList=

    并且看到此文件的后缀名为.url

    把这个文件放到网站上,然后做了个下载链接。提示404错误。理解,因为url后缀网站不支持。在网站的MIME类型中添加.url,然后MIME类型设置为:application/octet-stream。下载下来,可以使用,只是图标是系统图标,不是网站的logo标志。由于以前做过excel文件下载,知道mvc有专业支持文件下载的一类action。因此打算用那种实现以下,在网上找,但是没有找到MVC的实现方法,自己写了个,代码如下:

    public FileContentResult ShortCut() { string HostAddr = "http://jiaogui.jinrimianshi.com"; string icoPath = "http://jiaogui.jinrimianshi.com/Favicon.ico";//修改此处更改url图标或者图标路径,当前路径为根目录,只用修改相对路径,图标的完整路径由下方会自动生成 StringBuilder sb = new StringBuilder(); sb.AppendLine("[InternetShortcut]"); sb.AppendLine("URL=" + HostAddr); //快捷方式的外部链接 sb.AppendLine("IDList= "); sb.AppendLine("IconFile=" + icoPath); //图标文件 sb.AppendLine("IconIndex=1 "); sb.AppendLine("[{000214A0-0000-0000-C000-000000000046}]"); sb.AppendLine("Prop3=19,2 "); //第一种:使用FileContentResult byte[] fileContents = Encoding.Default.GetBytes(sb.ToString()); string fileName = System.Web.HttpUtility.UrlEncode("交规网站", System.Text.Encoding.UTF8) + ".url"; return File(fileContents, "APPLICATION/OCTET-STREAM", fileName); }

    前台下载链接:

    <a href="/home/shortcut" class="btn btn-default"  >下载快捷方式</a> 测试通过

    转载请注明原文地址: https://ju.6miu.com/read-22333.html

    最新回复(0)