【问题标题】:How to set $_FILE without html browse button?如何在没有 html 浏览按钮的情况下设置 $FILE?
【发布时间】:2012-05-08 18:35:08
【问题描述】:

我有一个包含 html 文件浏览按钮 (<input type=file />) 的表单。用户通过单击浏览按钮选择文件并提交表单。在提交表单时调用新的 php 脚本 (submitToServer.php),使用该文件将其上传到服务器。

现在我想在不使用浏览按钮的情况下上传该文件,因为我们上传时文件名和路径总是相同的。我该怎么做?

目前使用浏览按钮提交ToServer.php文件句柄文件如下:

$errorCode = $_FILES['claimsfile']['error'];
$claimsFileLocation = $_FILES["claimsfile"]["tmp_name"];
$claimsFileName = $_FILES["claimsfile"]["name"];
$claimsFilePointer = fopen($_FILES["claimsfile"]["tmp_name"], "r");

【问题讨论】:

  • 你想完成什么?从您最初的问题和随后的答案来看,我相信$_FILES 数组可能不是最好的解决方案...

标签: php html file-io


【解决方案1】:

我怀疑由于安全原因这是不可能的,您必须先单击浏览按钮并指定一个文件。用一些棘手的路径 (../../etc) 预先填写此字段而不按浏览按钮会产生安全问题(如果您可以想象一下)

【讨论】:

  • 好的。如果我不能在没有浏览按钮的情况下执行此操作,那么我可以使用任何技巧在按钮单击事件上使用所需路径填充浏览文本字段。
  • @Awan:我说过你不能,你必须点击浏览按钮。
  • 没有activex/java/flash绝对不可能。
  • @Awan 不。如果存在这样的技巧,那将是一个安全漏洞,并很快被浏览器供应商修补。
  • 您可以使用 DragDrop 上传文件。这将为您节省点击,但用户必须将其放在浏览器窗口中,所以它可能是相同的。
【解决方案2】:

你不能。出于安全原因,HTML 不允许这样做。

控制从服务器端上传哪个文件的唯一方法是使用小程序(java、activeX、flash) - 即使这样,您也需要使用签名代码才能摆脱沙箱。

C.

【讨论】:

  • 我认为,在不显示“选择文件”对话框的情况下,即使是 Flash 也不允许这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
相关资源
最近更新 更多