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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js能做一个选择本地文件夹目录单位东西吗,选好了文件之后返回文件路径来相关的知识,希望对你有一定的参考价值。

在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;
参考技术A <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;

function writeExcel()
var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible

js文件选择框,我选好文件后,取不到正确路径, alert(document.getElementById('filepath').value);

alert(document.getElementById('filepath').value);
取到的路径是C:\fakepath\文件名,不管怎么选文件都是这样的,怎么解决?
望大虾们看下
-----------------------------------------------------------------------解决方法》》》》
工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。

不过 感觉没有治本:如果别人用的电脑把IE里这项给禁用了,那不是在他的电脑上就没法运行哦??
希望各位给出办法解决,或者说应该怎么做可以避免出错,不管是提示还是其它什么办法的,谢谢!

这是故意的,由于安全原因,是不可能让你得到用户的电脑的盘符和路径的。

你在js里得到就可以传回服务器了,那样用户的电脑文件目录就全部被你获得了,黑客也太容易当了。

你只要提交表单,在服务器端自然会得到文件名的。

php用 $_FILES

你print_r($_FILES);
就可以看到了追问

我java

追答

类似

private void uploadFile(HttpServletRequest request, HttpServletResponse response)
try
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(-1);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);

// 得到所有的文件:
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while (i.hasNext())
FileItem fi = (FileItem) i.next();
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
String sep = System.getProperty("file.separator");
int index = fileName.lastIndexOf(sep);
if(index >-1)
fileName = fileName.substring(fileName.lastIndexOf(sep));

// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
fi.write(new File(uploadPath + fileName));
response.setCharacterEncoding("UTF-8");
response.getWriter().println(fileName+"上传成功");

catch (Exception e)
// 可以跳转出错页面
e.printStackTrace();

参考技术A 文件路径:<input type="file" id="filepath"/>
<button onclick="alert(document.getElementById('filepath').value);">查看路径</button>

每次重选文件后,点击按钮查看。应该是没有问题啊
你是怎么操作的?追问

和你一样 ie浏览器,换个机器也一样,是不是某些JS限制的?还是浏览器的问题?

追答

你重置一下ie浏览器的设置,再试试。我实验是ok的

参考技术B 没问题啊,只是一个定义而已嘛,但是你运行就会报错,找不到id为WindowsMediaPlayer1的节点
参考技术C 有可能是浏览器的原因

以上是关于js能做一个选择本地文件夹目录单位东西吗,选好了文件之后返回文件路径来的主要内容,如果未能解决你的问题,请参考以下文章

怎么在亚马逊买东西?请详细些……

svn 下载东西怎么下

Python使用matplotlib可视化绘图时你可用的颜色有哪些?把色彩可视化出来自己选好了

如何把视频里的声音转换成文字

如何使用POSTMAN发送请求参数到一个写好加解密方法的接口里

js怎么把id存到浏览器本地