【问题标题】:How to send javascript editable FileList to server?如何将 javascript 可编辑的 FileList 发送到服务器?
【发布时间】:2014-11-19 12:26:13
【问题描述】:

documentaion 中说,在 Javascript 中我们不能在“input”元素中编辑 FileList,因为它是只读的。那么将其他一些我可以编辑的 javascript FileList 发送到服务器的替代方法是什么?

【问题讨论】:

  • 您遇到了一个问题,即 JavaScript 的安全模型阻止了对文件系统的轻松访问。浏览器作为一个可执行应用程序具有这样的访问权限,但 JavaScript 代码不是浏览器的可执行代码——实际上,对文件系统的访问是通过 HTML 代码完成的,而不是 JavaScript:<input type="file" />。更糟糕的是,在我的实验中,似乎没有办法自动触发您选择文件的弹出窗口(理论上对象的click() 函数应该这样做)。尽管如此,如果您可以信任用户,那么存在一种答案(如下)。
  • 谢谢大家,但我在其他topic找到了解决方案。

标签: javascript jquery ajax filelist


【解决方案1】:

这是一个 HTML 测试页面:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>test-page</title>
 <script type="text/javascript">
//<!--

var fileobj, file;
function init()
{ fileobj=document.getElementById('filepick');
  fileobj.focus();
  fileobj.click(); //SHOULD auto-trigger the file-select popup, but doesn't
  return;
}

function filed()
{ file = fileobj.files;
  //At this point we should have an array of "item" objects,
  // containing all the files in the directory.
  //You can write code to pluck whatever you want from the array,
  // and then send that list to the server.
  return;
}

 // -->
 </script>
</head>
<body onload="init();">
<input id="filepick" type="file" multiple="multiple" onchange="filed();" /><br />
User: please click button and select all files in the relevant directory.  Thanks!
</body>
</html> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2020-11-23
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多