javascript 已知文件名的本地文件的读取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 已知文件名的本地文件的读取相关的知识,希望对你有一定的参考价值。

我看到网上普遍都是用的fileReader,但是有一个问题就是,它好像只能通过一个input type=file的控件加载一个文件,然后用fileReader.readAsText(file)加载这个文件,在onload中实现读取。
可是我想做的就是读一个固定的文件:concatenate.txt这个文件,请问我该如何实现?我试过用FileSystemObject,但是好像很多浏览器都不支持啊,不知道该怎么办了,求助!!!
原来的我是这样做的,想要测试能否载入固定文件名的文件,但是有错误。

<!DOCTYPE>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>read local file</title>
</head>
<body>
<h3>read local file with html5</h3>
<p>考参 : http://www.jsmix.com/html5/file-reader.html</p>
<p>使用 : 在chrome测试通过,其他浏览器没测试;直接双击打开显示错误的,把它放在一个web server的目录中,通过服务器的路径,如: http://127.0.0.1/a.html 打开<p>
<input type="file" id="f1" onclick="xx();">
<hr>
<div id="content"></div>
<script>
function xx ()
var dd = document.getElementById('content');
var reader = new FileReader();
if (typeof (FileReader) == "undefined")
dd.innerHTML = "your browser doesn't support filereader";
return;

var src="d:\\concatenate.txt";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f=fso.OpenTextFile(src,1,ture);
reader.onload = function (e)
dd.innerHTML += this.result;

reader.onerror = function (e)
dd.innerHTML = "error<br>";

reader.readAsText(f);
alert(f.name);

</script>
</body>
</html>

用JS创建文件
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
2.用JS创建并写入数据
function CreateFile()

var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\testfile.txt", true);
// 写一行,并且带有新行字符。
tf.WriteLine("Testing 1, 2, 3.") ;
// 向文件写三个新行字符。
tf.WriteBlankLines(3) ;
// 写一行。
tf.Write ("This is a test.");
tf.Close();

3.用JS读取数据
function ReadFiles()

var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
// 写一行。
// Response.Write("Writing file <br>");
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
// 读取文件的内容。
// Response.Write("Reading file <br>");
ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
s = ts.ReadLine();
// Response.Write("File contents = '" + s + "'");
alert(s);
ts.Close();

4.移动、复制和删除文件

任务
方法

移动文件 File.Move 或 FileSystemObject.MoveFile
复制文件 File.Copy 或 FileSystemObject.CopyFile
删除文件 File.Delete 或 FileSystemObject.DeleteFile

function ManipFiles()

var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
Response.Write("Writing file <br>");
// 写一行。
f1.Write("This is a test.");
// 关闭文件。
f1.Close();
Response.Write("Moving file to c:\\tmp <br>");
// 获取 C 的根目录(C:\)中的文件的句柄。
f2 = fso.GetFile("c:\\testfile.txt");
// 把文件移动到 \tmp 目录。
f2.Move ("c:\\tmp\\testfile.txt");
Response.Write("Copying file to c:\\temp <br>");
// 把文件复制到 \temp 目录。
f2.Copy ("c:\\temp\\testfile.txt");
Response.Write("Deleting files <br>");
// 获得文件当前位置的句柄。
f2 = fso.GetFile("c:\\tmp\\testfile.txt");
f3 = fso.GetFile("c:\\temp\\testfile.txt");
// 删除文件。
f2.Delete();
f3.Delete();
Response.Write("All done!");
参考技术A 如果是客户端读取文件的话,只能用IE了,其他浏览器是不支持的,因为这样很危险! 参考技术B 你要读的这个文件是在浏览器端还是在服务端?
你怎么知道concatenate.txt在客户端哪里呢?追问

在客户端的,因为就是本地打开浏览器然后,以网页的方式载入的一个本地的文件。

以上是关于javascript 已知文件名的本地文件的读取的主要内容,如果未能解决你的问题,请参考以下文章

用javascript读取本地文本文件[重复]

javascript如何读取本地json文件

如何使用Javascript读取本地文本文件并逐行读取?

javascript可以读取txt.请问javascript如何读取本地的TXT文件,然后将内容存入1个数组中?

读取本地文本文件 JavaScript [重复]

如何用javascript操作本地文件