用户需要点击浏览按钮浏览他的系统。然后选择一个文本文件&点击确定。一旦他点击确定,文本文件中的所有数据都应显示在文本区域中。我该怎么做?我正在使用JavaScript& c#设计aspx页面。如果我避免往返服务器,我会更好。
答案 0 :(得分:4)
如果没有访问服务器就无法做到这一点,获取文件内容的唯一方法是将其作为表单的一部分提交。您可以通过XHR在iframe中进行服务器之旅,然后使用XHR调用的结果更新文本区域,因此有点似乎没有涉及,但您不能直接出于显而易见的原因,访问用户计算机文件的内容。
答案 1 :(得分:3)
我知道你说你更喜欢往返旅行,但这是你能够完成你想要的唯一方式。
您可以将文件上传放在iframe中,并在幕后进行上传(无页面刷新,gmail会这样做:))然后使用AJAX下载数据并将其插入到textarea中。
答案 2 :(得分:2)
通常不能这样做,因为这里的答案概述。
但是,只能使用uploadfield.files
数组在Firefox 3+中完成。其他浏览器必须回程到服务器。
答案 3 :(得分:1)
出于安全原因,JavaScript无法像这样访问本地文件系统。
答案 4 :(得分:1)
如果不对用户造成严重的安全风险,Javascript就无法做到这一点。也就是说,该文件需要发布到您的服务器。
答案 5 :(得分:0)
正如其他海报所示,您不能直接从Javascript访问本地文件系统。但是,您可以在服务器上设置一个操作以从POST输入获取文件,并简单地将数据回送回响应。如果您将页面内的iframe隐藏为表单POST目标,则该响应数据可以显示在隐藏的iframe中,然后页面将不必重新加载。然后,一旦iframe加载了文本,您就可以使用JS将文本拉出iframe,并将其放入您感兴趣的文本区域。
或者,如果您倾向于限制具有扩展名的Firefox用户的使用,您应该能够在没有使用Greasemonkey用户脚本(请参阅www.greasespot.com)或其类似用途的往返的情况下实现此目的。自定义Mozilla扩展。