JS调用activeX实现浏览本地文件夹功能 wekit内核只需要<input type="file" id="files" name="files[]" webkitdirectory/>即可,IE内核比较麻烦

研究了一天,js访问本地文件本身是不可能的,只能借助于插件。植入正题,IE仅支持ActiveX插件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function openDialog() {
     try {
         var Message = "请选择文件夹"; //选择框提示信息 
         var Shell = new ActiveXObject("Shell.Application");
         var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11); //起始目录为:我的电脑
          
         if (Folder != null) {
             Folder = Folder.items();
             Folder = Folder.item();
             Folder = Folder.Path;
             if (Folder.charAt(Folder.length - 1) != "\\") {
                 Folder = Folder + "\\";
             }
 
             document.getElementById("inputPath").value = Folder;//获取地址填入文本框中
             return Folder;
         }
     }
     catch (e) {
         alert(e.message);
     }
 }

  相应的点击事件调用即可。

一般都会出现没有权限的错误。设置IE安全,把你的网站添加到可信任区域,然后修改可信任区域的安全限制,把有关activeX的都启用,就会成功,显示文件浏览对话框

闲的时候可以学习一下,非ie如何调用activeX,非ie的都是基于NPAPI来扩展。小人刚刚接触web开发,记录一下。

posted @   那是山  阅读(1080)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示