Javascript 如何从客户端访问和读取文件?
我有一个文件foo.txt,其中包含以下行:Javascript 如何从客户端访问和读取文件?,javascript,html,web,Javascript,Html,Web,我有一个文件foo.txt,其中包含以下行: row1 row2 row3 我想在我的HTML中创建一个指向这个文件的链接,并在客户端用Javascript读取它。有解决方案吗?文件不在您自己的服务器上: 由于安全原因,这在客户端JavaScript中是不可能的。假设您正在尝试访问客户端的文件系统 虽然Internet Explorer中有文件系统对象的选项,但在客户机上进行I/O通常不是一个好主意,除非无意对其造成损害 服务器上的文件: 然而,如果您打算从自己的域/空间读取文件,您可以使用@
row1
row2
row3
我想在我的HTML中创建一个指向这个文件的链接,并在客户端用Javascript读取它。有解决方案吗?文件不在您自己的服务器上: 由于安全原因,这在客户端JavaScript中是不可能的。假设您正在尝试访问客户端的文件系统 虽然Internet Explorer中有文件系统对象的选项,但在客户机上进行I/O通常不是一个好主意,除非无意对其造成损害 服务器上的文件: 然而,如果您打算从自己的域/空间读取文件,您可以使用@Fluidbyte指出的AJAX
您也可以在支持该文件的浏览器中使用。如果该文件位于您的服务器上,您可以使用以下内容:
jQuery.get('your_file.txt',function(data){
alert(data);
});
如果你想从你的本地系统拉进来,你首先需要一个上传机制
更新:
同步进行:
$.ajax({
url: "your_file.txt",
async: false,
success: function(data){ alert(data); }
});
你可以用它来做这个
如果不是,则使用传统的“上传到服务器并从服务器读取”方法。这也可以在AJAX中完成。我建议您将文件存储在客户端浏览器中的HTML5 Localstorage中,因为它是行,您可以将其保存在一个简单的循环中作为
localStorage.setItem("key1", "value1");
localStorage["key1"] = "value1";
...
编写一个服务器端脚本,逐行读取并输出javascript代码
稍后阅读时,您只需:
function listAllItems(){
for (i=0; i<=localStorage.length-1; i++)
{
key = localStorage.key(i);
val = localStorage.getItem(key);
}
}
函数listalItems(){
对于(i=0;iYes,它称为ajax,使用服务器端语言读取服务器上的文件。您无法直接使用javascript访问服务器或用户文件系统。感谢您的回答。因此,唯一的可能是将文件内容从服务器发送到客户端?@LajosArpad:更新了答案。您也可以使用html5文件API,用于读取客户端计算机上的文件,如果他拖放这些文件,在文件输入中选择它们,或者如果它们包含在使用chrome的webkitdirectory文件输入选择的目录下。然后,您可以修改这些文件并提示下载以另存为新文件。@Esailija:Yep,感谢您指出这一点。我想要包含以下内容的文件:获取一些关于网页的语义信息,客户端可以下载和阅读这些信息。谢谢,@Fluidbyte,如果我正确理解了你的答案,如果我在服务器端有一个文件,我可以通过这种ajax调用下载它并在客户端阅读它。还有同步解决方案吗?我添加了一个代码更新-只需要使用.ajax()并指定asynch false。是的,我看到了,Fluidbyte,我将很快对此进行测试,如果这个想法是正确的,我将投票并接受你的答案。这很有魅力,谢谢。我投票给你,我接受你的答案。再次感谢你。是的,这是一个可行的想法,我也投票给这个答案。
var oFReader = new FileReader();
oFReader.readAsText(document.getElementById("fileImportOrExport").files[0]);
oFReader.onload = function (oFREvent) {
var fileImportOrExportContent = oFREvent.target.result;
}
oFReader.onerror = function (OFREvent) {
alert("Error in reading");
}