【问题标题】:Upload local file without choose button不带选择按钮上传本地文件
【发布时间】:2015-04-29 23:49:33
【问题描述】:

我有一个关于将文件上传到某个服务器的问题。我了解由于安全问题,网络浏览器不允许 javascript 访问用户的文件目录。所以目前我的方法是添加一个选择文件按钮并手动选择要上传的文件。我在互联网上对其他替代方法进行了大量研究,但没有发现任何有用的东西。是否有任何可能的方法来自动化选择文件的过程? (我只需要上传一个文件)比如更改网络浏览器设置或将此文件附加到 html 中的某处或任何其他方法?

【问题讨论】:

  • 你需要添加一些关于你已经尝试过的信息,恐怕在代码中......
  • 你想过拖放吗?
  • 感谢您的回复。现在对于 html 页面,我有 选择一个文件并点击我使用restAPI将该文件上传到服务器。所有这些都可以正常工作。我现在需要做的是自动化选择部分
  • 拖放和选择文件都可以,但我需要自动化它,因为我正在做测试自动化,所以需要摆脱鼠标点击/拖动部分

标签: javascript html file file-upload


【解决方案1】:

很抱歉,我过去曾尝试过此操作,但出于安全考虑,网络浏览器不允许执行此操作。即使您知道用户计算机上的文件名,浏览器也只会将文件对象附加到您的<input type="file" /> 元素,前提是它是通过网络浏览器的本机“文件浏览器”选择的。虽然这是个坏消息,但这是正确的答案。

安全问题是网络浏览器强制执行必须通知用户的规则,并启动将文件附加到他们正在查看的网页中的表单元素的操作。

此操作只能由用户通过 <input type="file" /> 元素上的默认“浏览”按钮或用户使用 javascript 捕获的文件拖放操作来启动。

【讨论】:

  • 非常感谢您的回复。我对 JavaScript 和 html 很陌生。也没有那么多编程经验。实际上,我的项目的主要部分是在上传之后。所以上传部分不一定在 JavaScript 内部。是否有其他替代语言/方法可以用来先上传文件,然后在上传完成后触发 html/JavaScript 部分来完成其余的工作?就像用不同的语言做两部分一样!然后将它们整合在一起?我不确定这是否可能
  • @user4613659,我不能在这个评论框的空间里写太多。但是我会通过在我的网页上设置一个 setInterval() 来让 JavaScript '监听'更新,每隔几秒钟向 Web 服务器上的 PHP 脚本发送一个 AJAX 请求,任何上传的文件都将上传到该脚本。然后,该 PHP 脚本基本上会检查新文件以显示在 Web 服务器上。服务器 PHP 脚本将通过返回 'false' 来响应网页 AJAX 请求,除非它找到新文件,然后它将返回 'true' 并具有您的网页所需的有关上传文件的任何相关信息。
  • 5 年多之后,答案仍然没有......??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 2012-03-15
  • 2013-10-06
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
相关资源
最近更新 更多