我有一个文件foo.txt,其中包含以下行:
row1
row2
row3
我想在我的HTML中创建一个指向此文件的链接,并在客户端使用Javascript读取它。有解决方案吗?
答案 0 :(得分:4)
如果文件在您的服务器上,您可以使用以下内容:
jQuery.get('your_file.txt',function(data){
alert(data);
});
如果您想从本地系统拉入,首先需要上传机制。
<强>更新强>
同步执行:
$.ajax({
url: "your_file.txt",
async: false,
success: function(data){ alert(data); }
});
答案 1 :(得分:3)
文件不在您自己的服务器上:
由于安全原因,客户端JavaScript无法实现这一点。想象一下,您正在尝试访问客户端的文件系统。
虽然在Internet Explorer中可以选择文件系统对象,但在客户端计算机上进行I / O通常不是一个好主意,除非没有任何损害它的目的。
您服务器上的文件:
但是,如果您打算从自己的域/空间读取文件,则可以使用 AJAX 作为@Fluidbyte指出。
您也可以在支持它的浏览器中使用File API of html5。
答案 2 :(得分:2)
您可以将File API用于supported browsers。
如果没有,请使用传统的“上传到服务器并从服务器读取”方法。这也可以在AJAX中完成。
答案 3 :(得分:1)
我建议您将文件存储在客户端浏览器中的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);
}
}
每个网站通常会获得5MB的Localstorage空间。您可以编写一个函数来更新Localstorage向其添加内容并在需要时将其发送回服务器等。
答案 4 :(得分:0)
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");
}