【问题标题】:PHP: Uploading multiple files: Notice: Undefined index: file in bulletin.phpPHP:上传多个文件:注意:未定义索引:bulletin.php 中的文件
【发布时间】:2018-06-04 17:04:38
【问题描述】:

当我选择单个文件或多个文件时,结果是一样的。我期待此代码上传多个文件。但是数组是空的。我已经查看了其他人的多个帖子,这些问题的答案似乎不适用于这里。如果我消除了除名为“action”的隐藏输入之外的所有表单输入,则上传工作正常。

这是相关的 HTML 表单:

<form action="bulletin.php" method="post" enctype="multipart/form-data">
<input class="form-control" id="message_subject" name="message_subject" type="text"/>
<textarea class="form-control" cols="40" id="message_body" name="message_body" rows="10"></textarea>
<input type="file" id="file" name="file[]" multiple accept="image/*"/>
<input type="hidden" name="action" value="submit_new">
<button class="btn btn-primary " name="submit" type="submit">Submit</button>
</form>

这里是 PHP:

print_r($_FILES);       
if(isset($_POST['action'])){

// Count total files
$countfiles = count($_FILES['file']['name']);

// Looping all files
for($i=0;$i<$countfiles;$i++){
$filename = date('Y-m-d-H-i-s') . $_FILES['file']['name'][$i];

// Upload file
move_uploaded_file($_FILES['file']['tmp_name'][$i],'user-images/'.$filename);

}
}

这是输出:

数组( )

注意:未定义的索引:文件在 /var/www/html/secure/bulletin.php 的第 66 行

当表单中包含其他输入时,为什么数组为空?

【问题讨论】:

  • 请您评论第 66 行。
  • 检查此答案中的步骤stackoverflow.com/a/3587158/689579
  • 请告诉我们第 66 行
  • 第 66 行已注释。它是 $countfiles =
  • 我检查了您的建议,并且已经完成了其中的每一个步骤。

标签: php html forms post


【解决方案1】:

所以,就我而言,这个 php 页面上有多个表单,但除非 if 语句为真,否则不会显示。我偶然发现网络上的一篇文章建议页面上的每个表单都应包含 enctype="multipart/form-data"。因此,我将其添加到 php 文件的每个表单中,这解决了这个神秘的问题。不知道为什么不相关的表单标签会导致这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多