Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助读取位于同一目录中的Javascript文件吗_Javascript_Html_File_Blob_Filereader - Fatal编程技术网

需要帮助读取位于同一目录中的Javascript文件吗

需要帮助读取位于同一目录中的Javascript文件吗,javascript,html,file,blob,filereader,Javascript,Html,File,Blob,Filereader,我编写此函数是为了尝试读取与Javascript文件和index.html文件位于同一目录中的文件。我以前读过文件,但通常我让用户自己选择文件,所以我从来没有创建过实际的文件对象 有人知道为什么下面的代码不起作用吗 function getFile() { var reader=new FileReader(); var file=new File("input.txt"); var str=reader.result; reader.readAsText

我编写此函数是为了尝试读取与Javascript文件和index.html文件位于同一目录中的文件。我以前读过文件,但通常我让用户自己选择文件,所以我从来没有创建过实际的文件对象

有人知道为什么下面的代码不起作用吗

  function getFile()
  {
    var reader=new FileReader();
    var file=new File("input.txt");
    var str=reader.result;
    reader.readAsText(file);
    return str;
  }
更新:

一些额外的信息(如果我没有回答你的问题,我很抱歉,我真的是新手,我所知道的一切都是自学的)


服务器端还是客户端?我认为这将是托管服务器端-我有一个域,我要上传文件到

由于安全限制,不可能。您必须使用用户选择的文件。想象一下,如果javascript可以读取硬盘上的任何文件,会发生什么-噩梦

我有一个类似的用JS编写的桌面应用程序代码。它在IE和FF上工作得很好,直到Chrome出现(是的,那是很久以前的事了!),并且开始限制沙盒。在某种程度上,IE和FF也收紧了权限,该方法不再有效(我使用的代码不再有效):

在某种程度上,FF和Chrome有一些启动标志,使沙盒在某些安全限制上变得松散,但最终我意识到这只是一段旧代码

今天,我使用
localStorage
在本地机器上存储数据。唯一的缺点是必须实现导入/导出功能,以便通过复制/粘贴原始文本将其移植到其他浏览器/机器

我所做的就是这样。据说数据库的最大大小约为10 MB(但已知存在偏差),我存储的所有内容都是一个JSON字符串:

function store(data)
{
  localStorage.data = JSON.stringify(data);
}

function retrieve()
{
  return JSON.parse(localStorage.data);
}
显然,这两个函数过于简单,您需要处理边缘情况,例如不存在数据或导入了非JSON字符串。但是我希望您了解如何在现代浏览器上存储本地数据。

使用
File()
构造函数,您只能创建新的文件对象,但无法从lokal磁盘读取文件

现在还不太清楚你到底想要实现什么。 您可以说,input.txt与html和js位于同一目录中。因此,它位于服务器上


如果你想从服务器上读取文件,你必须使用一个ajax请求,这已经在后面解释过了。

好吧,如果这个javascript在客户端上运行,那么你就不能这样做。疑问:有服务器吗?还是打算从驱动器运行?请包括上下文,以便我们可以帮助您。请澄清您是试图在客户端还是服务器端读取文件。请参阅:有了更新的信息,显然您必须从服务器获取文件。因此,必须使用ajax请求。看我的
function store(data)
{
  localStorage.data = JSON.stringify(data);
}

function retrieve()
{
  return JSON.parse(localStorage.data);
}