【问题标题】:How to pass file input from HTML to PHP in OctoberCMS如何在 OctoberCMS 中将文件输入从 HTML 传递到 PHP
【发布时间】:2017-02-19 22:10:02
【问题描述】:

这是一个问题的演示:

HTML

<form data-request="onSubmit" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileUpload" id="fileUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

PHP

function onSubmit()
{
    echo $_FILES["fileUpload"]["name"];
}

这段代码总是输出

“未定义索引:文件上传”

这显然意味着 PHP 无法访问数据,因为应该包含文件的索引未定义。如何将客户端输入的文件传递给 PHP?

如有必要,解决方案可以使用带有 jQ​​uery 的 javascript。

附:我已经尝试过解决方案here。它没有用。

【问题讨论】:

  • 看起来非常适合您的 CMS
  • 没有action 属性出现在&lt;form&gt; 元素中。 form 提交到哪里?
  • @guest271314 我不知道您的意思,但是当您按下提交按钮时,它会执行 PHP onSubmit 函数,这就是我知道 $_FILES["fileUpload"]["name"]; 未定义的方式。这可能是因为它只是执行函数,而不是实际将数据传递给 PHP?是的,这就是我问这个问题的原因。 @nogad 是的,我知道,这就是我在标题和标签中指定它的原因
  • @MarkKramer var_dump($_FILES) 的输出是什么
  • 它会生成一个包含&lt;pre class='xdebug-var-dump' dir='ltr'&gt; &lt;small&gt;G:\Wamp\www\October Dev\storage\cms\cache\12\55\test-page-2.htm.php:6:&lt;/small&gt; &lt;b&gt;array&lt;/b&gt; &lt;i&gt;(size=0)&lt;/i&gt; &lt;i&gt;&lt;font color='#888a85'&gt;empty&lt;/font&gt;&lt;/i&gt; &lt;/pre&gt;[]的警报

标签: javascript php jquery octobercms


【解决方案1】:

使用内置的帮助类来访问发布数据是一个更好的主意。 在你的处理函数中使用它来访问上传的文件:

Input::file('fileUpload');

【讨论】:

  • 我彻底尝试了这个并确定它不起作用。 Input::get 之类的类似函数可以使用,但 Input::file 始终未定义。
【解决方案2】:

通过 AJAX 上传文件相当复杂,我建议您使用 frontend file upload plugin(或查看 the code it's based on 并自行实现)来处理。

有关此主题的更多信息,请参阅 octobercms/october#2428octobercms/october#2627https://octobercms.com/forum/post/frontend-file-upload

【讨论】:

    【解决方案3】:

    如果您刚刚将data-request="onSubmit" 更改为action="someURL.php",则表单应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 2015-10-30
      • 2017-01-09
      • 2013-12-11
      • 1970-01-01
      • 2021-09-22
      相关资源
      最近更新 更多