a标签下载文件

本来想慢慢写总结的,结果今天来了新项目,又要忙了。

随便写点记录下好了,有个大概印象,将来也好知道去哪儿找。

标题没想好就随手写了,其实是这样的,这个项目需要连接azure虚拟机,就是ms的那个。

然后虚拟机不是可以远程连接么,你在azure上操作的时候就是点击了链接虚拟机按钮,然后会让你下载一个rdp文件,打开这个文件输入你用户名的帐号密码就能连了。

其实这个rdp文件就是个txt,里面就两行,长这样。

full address:s:××××.×××××:××××
prompt for credentials:i:1

第一段×××是云服务名,第二段域名,第三段端口。

(项目里实际做过之后才知道,azure建立虚拟机,首先要建云服务,然后是存储空间,网络,最后是虚拟机,这段当然。。。不是我写的,我想想要不要写下)

废话太多,继续说下载这个文件的事。

1.首先后台要生成这个文件的内容

VirtualMachineGetRemoteDesktopFileResponse remoteFile=ComputeManagementClient.VirtualMachines.GetRemoteDesktopFile(serviceName, serviceName, vmName);   这段直接抄必然是错的233333,我省了实例化。还有这个第二个参数是deployment名,就是部署名,我这里是和服务名一样的。

byte[] file = remoteFile.RemoteDesktopFile;

return File(new MemoryStream(file), "text/plain",vmName+ ".rdp");

这样后台就把文件内容返回了。

2.前台,也就是我被坑到的地方,主要还是ie的保护机制。

var blob = new Blob([data], {type: "text/plain"});
                    var fileName = vm.VMName+‘.rdp‘;
                    var a = document.createElement("a");
                    document.body.appendChild(a);
                    a.download = fileName;
                    a.href = URL.createObjectURL(blob);
                    try {
                        a.click();
                    } catch (e) {
                        navigator.msSaveBlob(blob, fileName);
                    }

那个data就是后台返回的东西,最开始我是只写了a.clcik,然后过了几天- -发现ie下用不了,然后才注意到,ie禁止做这种模拟点击啊之类的操作。

于是搜了一些方法,试到msSaveBlob的时候发现可以,于是就用了这个,当然我只是了ff,chrome,和ie11,别的再出问题再说。

写完收工。

时间: 2024-10-11 07:22:49

a标签下载文件的相关文章

如何用 JavaScript 下载文件

简介 我们知道,下载文件是一个非常常见的需求,但由于浏览器的安全策略的限制,我们通常只能通过一个额外的页面,访问某个文件的 url 来实现下载功能,但是这种用户体验非常不好.幸好,HTML 5 里面为 <a> 标签添加了一个 download 的属性,我们可以轻易的利用它来实现下载功能,再也不需要用以前的笨办法了. 原理 我们先看看 download 的使用方法: <a href="http://somehost/somefile.zip" download=&quo

Servlet下载文件和http响应

下载文件等: 1.得到公共的内容ServletContext sc = this.getServletContext(); 2.在链接名字后面加个? 一个参数?参数1=值 两个参数?参数1=值&参数2=值 <a href="DownLoadServlet?fileName=正则表达式.html">下载正则表达式.html</a> 3.得到参数   String fileName = request.getParameter("fileName&

在浏览器端用JS创建和下载文件

前端很多项目中,都有文件下载的需求,特别是JS生成文件内容,然后让浏览器执行下载操作(例如在线图片编辑.在线代码编辑.iPresst等). 但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开->另存为.如下面这个链接: <a href="file.js">file.js</a> 用户点击这个链接的时候,浏览器会打开并显示链接指向的文件内容,显然,这并没有实现我们的需求. HTML5中给a标签增加了一个download属性,只要有这个属性,点击这

php下载文件的一种方式

<?php ob_start(); // $file_name="cookie.jpg"; $file_name="abc.jpg"; //用以解决中文不能显示出来的问题 $file_name=iconv("utf-8","gb2312",$file_name); //$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/&q

Android下载文件(1)

service下载文件,加入标签: <service android:name=".MyService"></service> 添加相关权限: <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE&quo

IntentSerive下载文件(2)

service下载文件,加入标签: <service android:name=".MyService"></service> 添加相关权限: <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE&quo

js 下载文件 修改文件名

用js下载文件,使用<a>标签,添加download属性即可. var a = document.createElement("a"); a.href = "http://XXX.com/audioStream/8a9dbae9d0859e48fc1f590fcf6d4ccc.mp3": a.download ="test.mp3"; a.click(); 但是如果想给文件重新命名,貌似js无法实现. 因此考虑后台实现,用java代理

Python抓取网页&amp;批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

用JS在浏览器中创建下载文件如下可以做到

前端很多项目中,都有文件下载的需求,特别是JS生成文件内容,然后让浏览器执行下载操作(例如在线图片编辑.在线代码编辑.iPresst等 但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开->另存为.如下面这个链接: <a href="file.js">file.js</a> 用户点击这个链接的时候,浏览器会打开并显示链接指向的文件内容,显然,这并没有实现我们的需求.HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接