【问题标题】:Is it possible to get $_FILES["inputID"]["tmp_name"] from a file field using javascript?是否可以使用 javascript 从文件字段中获取 $_FILES["inputID"]["tmp_name"] ?
【发布时间】:2015-10-02 14:03:56
【问题描述】:

我有一个输入字段:

<input type="file" id="inputID" name="file">

当一个按钮被点击提交时,一个JavaScript函数将运行(url:upload.php)。我需要能够从此输入字段访问$_FILES["inputID"]["tmp_name"],以便我可以在upload.php 上使用它,

move_uploaded_file($_FILES["inputID"]["tmp_name"], $target_file)

这可能吗?
目前,我收到一个错误:

注意:未定义的索引:inputID

非常感谢任何帮助。

非常感谢! :-)

【问题讨论】:

  • 如果您的&lt;input&gt; 名称是file,那么您需要在PHP 中使用$_FILES["file"]["tmp_name"],因为它在服务器上,所以您无法从JavaScript 访问它。
  • 这是不可能的,除非你用 php 将该值存储到某个地方,然后发出 ajax 请求以获取信息。
  • 谢谢你们!
  • 您甚至没有名为inputID 的字段。我认为您应该编辑问题并解释 what 您需要做什么,而不是 如何...

标签: javascript php html file-upload


【解决方案1】:

move_uploaded_file() 是一个 php 函数,运行在基于 PHP 的服务器端应用程序上。

当你的表单被提交时,它由 PHP 处理。

在发送之前,您无法从 JavaScript 访问它,无论您提交它的方式是什么,无论是与 XHR 请求异步,还是直接将表单提交到其处理程序路由。

【讨论】:

    【解决方案2】:

    你可以在提交后访问它,虽然我不明白为什么你应该这样做:

    <?php
    ...
    $tmpname=$_FILES["file"]["tmp_name"]
    ...
    ?>
    ...
    <script>
    var tmpname = <?=$tmpname?>
    ...
    </script>
    ...
    

    我不清楚您要做什么。如果想要一些ajax上传功能最好还是用js库。

    【讨论】:

    • 此方法假定首先提交带有所选文件的表单。然后再次渲染表单,显示 PHP 处理的 tmp_name。但是,即使您确实使用 JavaScript 访问它,tmp_name 也会在任何新的 HTTP 请求时更改,因此您不能依赖它再次使用它调用服务器。
    • 我同意它没用,但它仍然可以访问。
    • 严格来说,我猜是的。但正如你所说,我没有看到任何使用它的实用程序:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2013-03-18
    相关资源
    最近更新 更多