IE如何实现文件的自动下载

		function DownLoadPDF(attachGuid, filename,filepath) {
			var fso = new ActiveXObject("Scripting.FileSystemObject");
			if (!fso.FolderExists(filepath)) {
				fso.CreateFolder(filepath);
			}
			
			var curWwwPath = window.document.location.href;
			var pathName = window.document.location.pathname;
			var pos = curWwwPath.indexOf(pathName);
			var localhostPaht = curWwwPath.substring(0, pos);
			var projectName = pathName.substring(0, pathName.substr(1).indexOf(
					'/') + 1);
			var serviceUrl = localhostPaht + projectName + "/";
			var downloadRootUrl = serviceUrl;
			var strUrl = downloadRootUrl
					+ "rest/frame/base/attach/attachAction/getContent?attachGuid="
					+ attachGuid +'&isCommondto=true';
			var myFile = filepath + "\\" + filename; //这里目标路径也可以通过服务器端代码灵活赋值
			
			var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			xmlhttp.open("get", strUrl, false);
			xmlhttp.send();
			
			var ado_stream = new ActiveXObject("ADODB.Stream");
			ado_stream.Type = 1; //' 1=adTypeBinary
			ado_stream.open();
			ado_stream.Write(xmlhttp.responseBody);
			ado_stream.SaveToFile(myFile, 2); // 文件存盘
			ado_stream.close();
		}

上面是利用js下载文件,attachguid是文件的唯一的标识就是为了拼接文件的url,file是文件存储的名称,fileFolder是存储的文件夹的路径

在这个里面用到两个IE浏览器的两个actionX控件,其实IE浏览器如果开放了一些权限是可以对客户端的文件进行操作的,比如实删除客户端的文件:

	function deleteLocalFile(filepath){
			var fso = new ActiveXObject("Scripting.FileSystemObject");
			fso.DeleteFolder(filepath);
		}

这个函数是可以实现传递一个文件夹的路径客户端本地文件删掉的,其实这个也就是实现我们对客户端的文件进行操作的控制,可以删除文件夹自然是可以创建文件夹的:

	var fso = new ActiveXObject("Scripting.FileSystemObject");
			if (!fso.FolderExists(filepath)) {
				fso.CreateFolder(filepath);
			}

上面也就实现的在客户端对文件的进行创建,然后可以实现对用户文件进行保存:

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			xmlhttp.open("get", strUrl, false);
			xmlhttp.send();
			
			var ado_stream = new ActiveXObject("ADODB.Stream");
			ado_stream.Type = 1; //' 1=adTypeBinary
			ado_stream.open();
			ado_stream.Write(xmlhttp.responseBody);
			ado_stream.SaveToFile(myFile, 2); // 文件存盘
			ado_stream.close();

这个里面涉及到两个变量,一个是文件的strUrl表示是文件的地址,可以是http://.......这样的地址myFile是文件的文件从存储的地址,包含filepath+filename

其实这样也就实现了利用IE浏览器在客户端对文件进行下载和保存的到固定的地址

在实现上面的操作都是针对的IE浏览器,你也需要对IE浏览器添加一些设置比如ActionX控件需要启用,允许访问数据源等等,这些



猜你喜欢

转载自blog.csdn.net/datouniao1/article/details/79928666