【问题标题】:Why is my PHP upload script not working?为什么我的 PHP 上传脚本不起作用?
【发布时间】:2011-02-28 23:16:12
【问题描述】:

我正在做一些简单的上传文件的工作。在这一点上,我忽略了错误检查和异常,只是为了让我的上传正常工作。我有这个 HTML 表单:

<form action='addResult.php' method='post' enctype='multipart/form-data' target='results_iFrame' onsubmit='startUpload();'>
Entry: <input type='text' id='entry' />
Stop: <input type='text' id='stop' />
Final: <input type='text' id='final' />
Chart: <input type='file' id='chart' />
<input type='submit' value='Add' /></form>

如您所见,它在 iFrame 'results_iFrame' 中调用了 'addResult.php'。 Javascript 仅用于动画目的并告诉我何时完成。 addResult.php 中包含此代码(以及处理其他输入):

$upload_dir = "../img/";
$chart_loc = $upload_dir.basename($_FILES['chart']['name']);

move_uploaded_file($_FILES['chart']['tmp_name'], $chart_loc);

print_r($_FILES);

它使用表单中的“图表”输入并尝试上传。我有 print_r() 函数来显示关于 $_FILES 的一些信息,但是数组是空的,因此导致失败。我可能做错了什么?

【问题讨论】:

    标签: php html upload


    【解决方案1】:

    在处理表单时,name= 用于引用服务器端的项目,而不是 id=

    只需将所有 id 属性更改为 namess,就可以开始了(希望如此)。

    【讨论】:

    • “只需将所有这些名称属性更改为 ids” - 反过来,肯定吗? :)
    • 哎呀,又自相矛盾了;)
    • 啊,当然 - 它总是很简单。我已将其从发送信息转换为使用 ID 而不是名称的 Javascript 函数。谢谢!
    • 因为nameid 的事情,我已经拉了很多次头发,所以不用担心。
    • 这里也一样。这个问题我还是错过了。
    【解决方案2】:

    您必须为输入元素提供name 属性,否则它们不会传递给您的脚本。 id 用于 DOM/浏览器/客户端使用。

    解决此问题后可能会出现另一个问题,但这是很好的第一步。

    【讨论】:

      【解决方案3】:

      尝试将 name 属性添加到您的输入值,如下所示:

      <input type='file' id='chart' name="myfile"/>
      

      【讨论】:

        【解决方案4】:

        您的输入没有“名称”属性,只有 ID。

        【讨论】:

          【解决方案5】:

          您需要为表单字段提供名称属性

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-10-07
            • 2012-10-23
            • 2018-05-14
            • 1970-01-01
            • 2016-11-03
            • 2015-01-30
            • 2015-10-14
            • 1970-01-01
            相关资源
            最近更新 更多