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控件需要启用,允许访问数据源等等,这些