应该可以,下面是一段用JavaScript代码实现读取文件的方法,对你应该有参考意义!function readFile()
{
var filePath = document.frm.newFile.value;
fileObj = new File("D:\mytest\myTest.txt");
data = fileObj.open('w');
while(fileObj.eof())
{
document.write(data.read(1))
}
fileObj.close();
}

解决方案 »

  1.   

    文件对象FileTextStream对象的作用在于读写文本文件,是对文件内容的操作。而File对象的功能则是对文件本身的操作,它提供了文件的拷贝、移动和删除等基本操作。一 File对象适用的方法FileExists("路径文件名")  知道的文件是否存在?若存在返回True, 否则False GetFile("路径文件名") 创建一个File对象的实例, 以便调用它的方法和属性 CopyFile("源路径文件名","目标路径文件名"[,overwrite]) 拷贝指定文件到目标位置 MoveFile("源路径文件名","目标路径文件名") 移动指定文件到目标位置 DeleteFile("路径文件名") 删除指定文件 以上方法是属于FSO对象的,下面的方法则属于File对象。Copy("目标路径文件名") 拷贝指定文件到目标位置 Move("目标路径文件名") 移动指定文件到目标位置 Delete("路径文件名") 删除指定文件 OpenAsTextStream([iomode, [format]]) 作为文本文件打开。返回一个TextStream对象。
    输入输出方式iomode 参数可取1,2,3三种值:
    1=ForReading 以只读方式打开文件。 不能写这个文件。
    2=ForWriting 以写方式打开文件。 如果存在同名的文件,那么它以前的内容将被覆盖。
    8=ForAppending 打开文件并从文件末尾开始写。
    这与方法是一样的。
    文件格式 参数format可取下列三种值(-2,-1,0)之一:
    TristateUseDefault -2 使用系统默认值打开文件。
    TristateTrue -1 以 Unicode 方式打开文件。
    TristateFalse 0 以 ASCII 方式打开文件。
    说明;ForReading等符号常量只能用于VB,在JS中要使用必须自行预设。iomode的缺省值是2,覆盖。 二 File对象的属性Attributes 设置或返回文件或文件夹的属性。attributes 可以是下列各值或者这些值的任意逻辑组合:常数 值  描述 
    Normal  0 普通文件 
    ReadOnly     1 只读文件 
    Hidden       2 隐藏文件 
    System      4 系统文件 
    Volume 8 磁盘卷标。只读。 
    Directory 16 文件夹或目录,只读。 
    Archive 32 文件在上次备份后已经修改。 
    Alias 64 链接或者快捷方式。只读。 
    Compressed 128 压缩文件。只读。 DateCreated 指定文件或文件夹的创建日期和时间。 
    DateLastAccessed 最后访问指定文件或文件夹的日期和时间。只读。 DateLastModified 最后修改指定文件或文件夹的日期和时间。只读。 Drive 指定文件或文件夹所在驱动器的驱动器号。只读。 Name 设置或返回指定文件或文件夹的名称。读/写。 ParentFolder 返回指定文件或文件夹的父文件夹对象。只读。 Path 返回指定文件、文件夹或驱动器的路径。 ShortName 返回短名称,这些短名称由需要以前的 8.3 命名规范的程序使用。 ShortPath 返回短路径名,这些短文件名由需要以前的 8.3 文件命名规范的程序使用。 Size  返回以字节为单位的指定文件或文件夹的大小。 Type 返回关于文件或文件夹类型的信息。 以上属性,对于Folder对象也都适用。目标例程1 文件的拷贝,OpenAsTextStream方法。function FileOpp() {
    var fso, fdir,fname, SF;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fdir = fso.GetFolder("C:\\");
    SF = fdir.SubFolders;
    if (!fso.FileExists("$$$fdir" )) SF.Add("$$$fdir" );
    if (!fso.FileExists("$$$fdir1")) SF.Add("$$$fdir1");
    fdir = fso.GetFile("filename.txt");
    var tf = fdir.OpenAsTextStream(1);do {
      fname = tf.ReadLine();
     if (fso.FileExists("C:\\"+fname))
       fso.CopyFile("C:\\"+fname, "C:\\$$$fdir\\"+fname);
     }
    while(!tf.AtEndOfStream);
    tf.close() ;
    }
        目标例程2 文件的移动、改名和删除。function FileOpp1() {
    var fso, ff;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.MoveFile("C:\\$$$fdir\\CONFIG.WIN", "C:\\$$$fdir1\\CONFIG.WIN");
    ff = fso.GetFile("C:\\$$$fdir\\config.sys");
    ff.Move("C:\\$$$fdir\\config.old"); //改名
    fso.DeleteFile("C:\\$$$fdir\\autoexec.bat");
    ff = fso.GetFile("C:\\$$$fdir\\MSDOS.SYS");
    ff.Attributes=0;
    ff.Delete();
    }
    说明 先后运行例程1,2。例程1生成两个文件夹,在文件夹$$$fdir中拷贝得若干文件,由于各个电脑上的文件不一样,拷贝的结果是不一样的。运行完以后先观看一下结果。例程2把文件CONFIG.WIN移动到文件夹$$$fdir1中,有MOVE方法改名得config.old,用两种方法删除了文件autoexec.bat和MSDOS.SYS。del$$$用来删除例程1生成的文件夹,但由于其中包含只读文件和系统文件,可能会不能执行而报告“没有权限”。语句ff.Attributes=0;就是改变的文件属性,而使下一句的删除可执行。目标例程3 File对象的属性用法演示function FileProp() {
    var fso, ff, ss="";
    var fname = prompt("输入一路径文件名","c:\\$$$fdir\\config.old");
    fso = new ActiveXObject("Scripting.FileSystemObject");
    ff = fso.GetFile(fname);
    ss += "文件名" + ff.Name +"\r\n";
    ss += "类型为" + ff.Type+"\r\n";
    ss += "属性值 = " + ff.Attributes +"\r\n";
    ss += "文件大小 " + ff.Size +"B" +"\r\n";
    ss += "最后访问日期 " + ff.DateLastAccessed +"\r\n";
    ss += "最后修改日期 " + ff.DateLastModified +"\r\n";
    ss += "Path= " + ff.Path+"\r\n";
    ss += "Drive=" + ff.Drive+"\r\n";
    ss += "父文件夹" + ff.ParentFolder+"\r\n";
    ss += "短文件名=" + ff.ShortName +"\r\n";
    ss += "短路径名=" + ff.ShortPath +"\r\n";
    alert(ss); return;
    }代码注释执行后显示的结果如下图所示。必须先执行了例1例2后才有config.old这文件。但本程序你也可以选择任何文件来观看文件信息。选不同文件来运行可观察到属性值的不同。Attributes 属性值给出的是数值,为了显示文字信息还需要稍加处理。除了Attributes 和 Name以外,其余都是只读的。从图中可以看出,日期数据是标准格式,实际给出的是日期的字符串,而不是Date对象。短文件名和短路径名中的大写是系统给出的,前几行的大小写由程序中的输入确定。为了把Attributes 属性值转化成文字信息,我们可以用下面的代码:function FileList() {
    var fso, fdir, SF, ff, ss="";
    function AttrInfo(attr){
    var info,s="", a1,a2;
    a1 = attr & 0xF0 ; a2 = attr & 0x0F ;
    switch (a1) {
    case 128:s = " 压缩文件";break;
    case 64: s = " 链接或者快捷方式";break;
    case 32: s = " 文件在上次备份后已经修改";break;
    case 16: s = " 文件夹";break;
    }
    switch (a2) {
    case 0: info = "normal"; break;
    case 1: info = "R";break;
    case 2: info = "H";break;
    case 3: info = "RH";break;
    case 4: info = "S";break;
    case 5: info = "RS";break;
    case 6: info = "HS";break;
    case 7: info = "RHS";break;
    case 8: info = "卷标号";break;
    default:info = "不可识别";break;
    }
    return info + s ;
    }目标例程3 显示C盘根文件夹的内容清单。function FileList() {
    var fso, fdir, SF, ff, ss="";
      function AttrInfo(attr){ ... }
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fdir = fso.GetFolder("C:\\");
    ss =  "文件名    ";
    ss += "文件类型 ";
    ss += "属性";
    ss += "大小 " ;
    ss += "最后访问日期" ;
    ss += "最后修改日期";
    ss += "路径文件名" ;
    ss += "父文件夹"  ;
    ss += "短文件名=";
    ss += "短路径名=";
    document.write (ss + "<br>");
    SF = new Enumerator (fdir.Files);
    for (ff= SF.moveFirst();SF.atEnd();SF.moveNext()) {
        ff = SF.item();   
    ss += ff.Name +"\r\n";
    ss += ff.Type+"\r\n";
    ss += AttrInfo(ff.Attributes) +"\r\n";
    ss += ff.Size +"B" +"\r\n";
    ss += ff.Path+"\r\n";
    document.write (ss + "<br>");
     }
    return;
    }
     说明 只有把new Enumerator (fdir.Files)中的fdir.Files改为fdir.SubFolders,本程序就可用来显示子文件夹清单信息。
      

  2.   

    可以,不过,会有安全提示.<script>
    function WriteDemo(s1)
    {
       var fso, f, r
       var ForReading = 1, ForWriting = 2;
       fso = new ActiveXObject("Scripting.FileSystemObject")
       f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
       f.Write(s1);
       f.Close();
       document.all.txt.value="";
    }
    </script>
    <textarea name=txt></textarea>
    <input type=button value="Write" onclick="WriteDemo(document.all.txt.value)">
      

  3.   

    没有问题,可以用server端的程序,以前写过的。