js能做一个选择本地文件夹目录单位东西吗,选好了文件之后返回文件路径来

js能做一个选择本地文件夹目录单位东西吗,选好了文件之后返回文件路径来,第1张

在Windows平台上, js可以调用很多如源Windows提供的ActivexObject,本文就使用js来实现文档处理, 和使用js编写ActiveX做一个简袜梁单介绍.

复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "渣好态-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>New Document </title>

</head>

<script type="text/javascript">

function readFolder(){

var filePath = "d:\\test\\"

var fso = new ActiveXObject("Scripting.FileSystemObject") //加载控件

var f = fso.GetFolder(filePath)

var underFiles = new Enumerator(f.files)//文件夹下文件

for (!underFiles.atEnd()underFiles.moveNext()){

var fn = "" + underFiles.item()

//alert(fn)

var content = readFile(fn,fso)

alert(content)

}

}

function readFile(path,fso){

var f1 = fso.GetFile(path)

var fh = fso.OpenTextFile(f1, 1/*reading*/)

var content = ''

while ( !fh.AtEndOfStream ) {

content += fh.ReadLine()

}

fh.close()

return content

}

最近做一个小项目,前端需要有一个功能是点击某按钮时,d出文件选择的框,然后获取目录并写入对应的输入框里,以往是选择某个文件进行上传,功能看起来有些像,但这次不同的是只能选择某个目录而不是文件,因为它并不是上传,它只是为了选择后台生成的文件保存的路径。

于是网上查解决方案,查到两种,

一种是仅在谷歌浏览器上有效的方式,在input节点里加一个属性 webkitdirectory,就可以实现点击d出选择目录的功能,然后就可以截取目录,此种方式对非空文件夹是可以的实现的,只需监听此input的change事件即可,但如果选择的是空文件夹,就不会触发事件,就无法获取路径,所以这方法不复合我的需求。

另一种是只适用于IE浏览器的方式,即调用IE的activeX控件,为点击按钮绑定事件,然后就可以获取目录,然后到目录调到想要的地方即可,具体实现方式是:

<input id="show">

<button onclick="clickBtn()">点击</button>

function click() {

    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('show').value = Folder

            return Folder

        }

    } catch (e) {  alert(e.message)}

}

但些方式也有一个问题是,此控件是默认关闭的,需要用户手动启用,并且要把本站点加入可信任站点才行,具体设置过程是:

1. 单击菜单工具->Internet选项->安全->受信任站点->站点->把此网站设为可信站点

2. 在自定义级别->对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12244153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存