2017-07-19 63 views
-1

我在查看页面中有一个按钮。在点击按钮时,一个函数被调用。在那个函数中,调用另一个函数,并且文件的位置作为参数。在第二个函数中,我需要读取传入位置中指定的文件,并在控制台中显示内容。我已经尝试的是低于如何使用javascript读取本地文本文件

ReadFile : function(){ 
     this.ReadTextFile("C:\Users\RFRANCIS\Downloads\Inv00008W.txt"); 
    }, 
ReadTextFile: function(file) 
    { 
     var rawFile = new XMLHttpRequest(); 
     rawFile.open("GET", file, false); 
     rawFile.onreadystatechange = function() 
     { 
      if(rawFile.readyState === 4) 
      { 
       if(rawFile.status === 200 || rawFile.status == 0) 
       { 
        var allText = rawFile.responseText; 
        alert(allText); 
       } 
      } 
     } 
     rawFile.send(null); 

    } 

但我越来越Access拒绝error.Please找我解决这个问题或建议另一种method.I测试这在IE11。

+1

该路径正确写入,但不会转义路径中项目的第一个字母。 – Teemu

+0

this.ReadTextFile(“file:/// C:\ Users \ RFRANCIS \ Downloads \ Inv00008W.txt”); 是否这样? –

+0

url路径中的“分隔符”不是反斜杠......反斜杠在JS中是一个逃避字符,它逃避了它旁边的字符。 – Teemu

回答

0

为了你需要这可能看起来更像file:///c:/比你有什么文件的有效URL,但是你在这里有几个重叠的问题来访问你的本地驱动器:

  1. 为本地文件的URL必须以文件开头:///
  2. 您需要了解Javascript字符串文字中的转义字符和斜杠(您需要使用特殊语法在JavaScript中表示斜线)
  3. 当您修复这些问题时,您仍然可以获得CORS安全性例外,因为(至少chrome)不会将本地文件视为一个dom艾因。 (要解决此问题,您需要专门设置Chrome或在本地计算机上使用适当的本地主机http服务器。
+0

@Teemu thx,有趣 - 我对sapui功能不是很强 – Elemental