Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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/2/jquery/78.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_Jquery_Html - Fatal编程技术网

Javascript 如何将本地文本文件上载到文本区域(网页内)

Javascript 如何将本地文本文件上载到文本区域(网页内),javascript,jquery,html,Javascript,Jquery,Html,我是一个新手程序员,需要一些帮助,了解如何将本地文本文件上传到我正在构建的网站内的文本区域。我非常精通HTML/CSS,对Javascript/JQuery有相当的了解,我正在学习PHP。如果你能给我任何帮助,我将不胜感激。我有一个type=“file”和name=“file”的输入,还有一个类为“.textbox”的textarea,还有一个运行函数“Upload()”的按钮。这是我网站的javascript var localfile = $("input[name=textfile]").

我是一个新手程序员,需要一些帮助,了解如何将本地文本文件上传到我正在构建的网站内的文本区域。我非常精通HTML/CSS,对Javascript/JQuery有相当的了解,我正在学习PHP。如果你能给我任何帮助,我将不胜感激。我有一个type=“file”和name=“file”的输入,还有一个类为“.textbox”的textarea,还有一个运行函数“Upload()”的按钮。这是我网站的javascript

var localfile = $("input[name=textfile]").val();

function Upload(){
  $(".textbox").append(file);
}

提前谢谢

我想这会很好

使用iframe上传文件,这会给你一个类似ajax的用户体验,Gmail就是这么做的

然后使用php读取文件的内容

然后通过ajax将内容发送回,然后使用js将其附加到textarea


这有意义吗?

实现FileReader的现代浏览器可以做到这一点。要测试浏览器,请检查是否定义了window.FileReader

这是我几天前写的一些代码,就是为了实现这一点。在我的例子中,我只是简单地将一个文件拖到HTML元素上,该元素在这里被引用为panel.in1,但您也可以使用它(参见下面的引用)

它是reader.onloadend函数,用于获取在事件处理程序中恢复为this.result的文件文本

我从MDN获得了关于如何实现这一点的大部分机制:

这段代码展示了读取文件的基础知识,文件本身被拖入文本区域,我认为这是一个比必须通过选择文件机制更好的界面,但是这些机制同样适用于选择要读取的文件


这是我对类似问题的回答:

更正输入的名称是“textfile”“Upload”?你是说下载吗?我可能会在后端(PHP)上这样做,因为如果你在前端这样做,它需要浏览器支持HTML5文件API。长话短说,您可以通过表单上传文件,然后让表单处理程序对其进行解析,然后在视图中显示文件内容。查看下面一些非常基本的文件处理示例:理论-1到使用Flash:完全不合适的解决方案。@ŠimeVidas我只是基于OP似乎对JS如何处理文件没有很好的把握这一事实提出了这个建议#你不是gmail在做什么。如果你不知道,我很抱歉。我见过Gmail使用iframe上传文件,因为ajax不支持多部分/表单数据,无法为用户提供动态ajax体验。不确定当前的gmail版本。不再使用..Ajax支持多部分/表单数据。在发布更多关于这个话题的答案之前,也许你应该花些时间更新你的知识。真的谢谢。这是我在网上读到的。我没有像你这样的传奇来教我。我试着帮忙。我不会在这个网站上再这样做;)
if (window.FileReader) {
  function dragEvent (ev) {
    ev.stopPropagation (); 
    ev.preventDefault ();
    if (ev.type == 'drop') {
      var reader = new FileReader ();
      reader.onloadend = function (ev) { panel.in1.value += this.result; };
      reader.readAsText (ev.dataTransfer.files[0]);
    }  
  }

  panel.in1.addEventListener ('dragenter', dragEvent, false);
  panel.in1.addEventListener ('dragover', dragEvent, false);
  panel.in1.addEventListener ('drop', dragEvent, false);
}