如何用javascript操作本地文件

Posted

tags:

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

如果要使用javascript操作本地文件,针对于现在的浏览器来说只有IE可以有权限直接操作文件,其他浏览器是不能实现的
下面是操作文件的例子,你试试看:

<script type="text/javascript">
/**
*CreateFile: 测试在电脑上创建一个文件件,并在文件夹里写进一些数据。
*
*/
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();//关闭

/**
*Folder的API:
*任务 方法
*创建文件夹。 FileSystemObject.CreateFolder
*删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder
*移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder
*复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder
*检索文件夹的名字。 Folder.Name
*如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists
*获得现有 Folder 对象的实例。 FileSystemObject.GetFolder
*找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName
*找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder
*/
function ManipFiles()

var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true); //如果当前文件已经存在的话,则覆盖原有文件
alert("Writing file <br>");
// 写一行。
f1.Write("This is a test.");
// 关闭文件。
f1.Close();
alert("Moving file to c:\\tmp <br>");
if(!fso.FolderExists("c:\\tmp")) //如果tmp目录不存在,则创建一个目录
fso.CreateFolder("c:\\tmp");

// 获取 C 的根目录(C:\)中的文件的句柄。
f2 = fso.GetFile("c:\\testfile.txt");
// 把文件移动到 \tmp 目录。如果这个tmp目录下已经有testfile.txt文件了,则会出错。(如果没有tmp这个文件目录也会出错)
f2.Move ("c:\\tmp\\testfile.txt");
alert("Copying file to c:\\temp <br>");
// 把文件复制到 \temp 目录
if(!fso.FolderExists("c:\\temp")) //如果temp目录不存在,则创建一个目录
fso.CreateFolder("c:\\temp");

f2.Copy ("c:\\temp\\testfile.txt");
alert("Deleting files <br>");
// 获得文件当前位置的句柄。
f2 = fso.GetFile("c:\\tmp\\testfile.txt");
f3 = fso.GetFile("c:\\temp\\testfile.txt");
// 删除文件。
f2.Delete();
f3.Delete();
//删除文件夹
// www.jquerycn.cn
var fdTmp = fso.GetFolder("c:\\tmp");
var fdTemp = fso.GetFolder("c:\\temp");
fdTmp.DeleteFolder();
fdTemp.DeleteFolder();
alert("All done!");


ManipFiles();
//CreateFile();
alert("Ok! Write Over!");
</script>
参考技术A javascript是资源安全型语言,也就是说,它不支持操作本地文件。本回答被提问者采纳 参考技术B

 1.先上代码:

     //读文件
      var fso, f1, ts;
      var ForReading = 1;
      fso = new ActiveXObject("Scripting.FileSystemObject");
      ts = fso.OpenTextFile(document.all.attachFile.value/*此处为含全部路径的文件名*/, ForReading); 
      document.all.mailbdy.value=ts.ReadAll();
      ts.Close();
      //写文件
      var  title = document.getElementById("title").value;//文件名
      var   fso=new   ActiveXObject("Scripting.FileSystemObject"); 
      var   f=fso.CreateTextFile("C://"+title+".nc",true); //可随意选择后缀名
      f.write(document.getElementById("babala").value); 
      f.Close();

很简单吧,这就是基本过程,从文件中读取到数据以后就可以进行相关操作了。

 2.由于安全性原因ActiveXObject对象在firefox中无法使用。因此想要在firefox中完成类似的功能就需要采取别的方法 了。

3.选择输入文件。可以使用<input type="file" name="attachFile"> 来获取包含路径的文件名。

4.我使用了<textarea>来进行文件的显示和修改。在保存的时候。也可以使用window的saveAs命令。不过在保存窗口 内容的时候,因为存在/n和<br />的转换问题,因此在保存文件时可能会导致格式错误。不过用ActiveXObject保存内容可以不用考虑该问题。

5.javascript的字符串类提供的方法可以很方便的编写字符串处理程序。另外在处理字符到数字的转换时,可以使用praseInt() 和parseFloat()方法。

请教如何用JQuery导入导出excel表格

可以用javascript的文件相关的函数,我忘记具体怎么做了(曾经做过,不难。),只有大体思路。javascript(网页)操作本地文件是要有个许可的,一般在浏览器的安全选项卡里面要设置一下。用生成一个对象,这个对象关联到excel对象(要求客户端必须装excel)。然后写excel表格的单元格等等。到网上搜索一下javascript操作excel就会有的。 参考技术A //必须用ie浏览器,必须安装excel,必须是windwos系统
var filename = "文件全路径"
var oXL = new ActiveXObject("Excel.Application");
try
    var oWB = oXL.Workbooks.open(filename);
catch(e)
    alert('打开文件失败!');

var oSheet = oWB.ActiveSheet;
var nRows=oSheet.usedrange.rows.count;
var nColumns =oSheet.usedrange.columns.count;
//alert("行"+nRows+ " 列" + nColumns);
//第一行为表头
for(var i=2;i<=nRows;i++)
   for(var j=1;j<=nColumns;j++)
       var text = oSheet.Cells(i,j).value;
       alert(text);//第i行,第j列单元格内容       
    

oSheet=null;
oWB.close();
oXL.Application.Quit();  
oXL = null;
CollectGarbage();

以上是关于如何用javascript操作本地文件的主要内容,如果未能解决你的问题,请参考以下文章

如何用javascript操作本地文件

如何用angularjs读取本地json

如何用javascript保存网页中的一个img到本地?

如何用js遍历本地文件

如何用java或javascript实现在网页收藏夹中新建文件夹及重命名功能

如何用Xshell导出文件到桌面本地