需求:我想通过选择文件路径把数据库中的数据导出成Excel放在这个路径下
前端代码可以如下实现:
<!-- 文件下载 -->
<tr>
<td>选择导出文件路径:</td>
<td><input id="path" type="text" name="path" size="30"></td>
<td><input type=button value="选择" onclick="browseFolder('path')"></td>
</tr>
<div id="tab2" class="tabson">
Js代码为:
function browseFolder(path) {
try {
var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 64, 17);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if (Folder != null) {
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if (Folder.charAt(Folder.length - 1) != "\\") {
Folder = Folder + "\\";
}
document.getElementById(path).value = Folder;
return Folder;
}
} catch (e) {
alert(e.message);
}
}
此时会把用户选择的路径输出到这里面显示出来,此时可以提取该地址转给后台处理就可以导出Excel了。
特别注意的是,由于安全方面的问题,你还需要如下设置才能使本JS代码正确运行, 否者会出现"没有权限"的问题.(该方法只能在IE浏览器下正常运行,火狐,谷歌都不行)
1、设置可信任站点(例如本地的可以为:http://localhost)(点击设置–》Internet选项–》受信任的站点–》点击站点添加http://localhost)
2、其次:可信任站点安全级别自定义设置中:设置下面的选项
“对没有标记为安全的ActiveX控件进行初始化和脚本运行”----“启用”