不上传多个文件

时间:2019-01-17 20:47:37

标签: php html5

我从另一个StackOverflow问题中借用了此代码,但是由于某些原因,我无法使其正常工作。测试时甚至没有通过文件。我的错误测试显示

  

总计:0

因此它在那里失败。任何帮助将不胜感激

session_start();
$total = count($_FILES['upload']['name']);
echo "total: " . $total;
    for( $i=0 ; $i < $total ; $i++ ) {
    $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
    echo $tempFilePath . "<br>";
    if ($tmpFilePath != ""){
        $newFilePath = "/images/prod/" . $_FILES['upload']['name'][$i];
        echo $newFilePath . "<br>";
        if(move_uploaded_file($tmpFilePath, $newFilePath)) {
            echo $_FILES['upload']['name'];
        }
    }
}

<form action="addpics.php" method="get" name="add" enctype="multipart/form-data>
<input type="file" name="imgs[]" multiple>
<input type="submit" value=" - ADD - ">
</form>

期望文件上传到/ images / prod文件夹 并回显文件名数组

2 个答案:

答案 0 :(得分:0)

您没有关闭enctype的反向逗号。 enctype="multipart/form-data"

答案 1 :(得分:0)

问题是因为您的方法,enctype和字段名称错误。正如其他人提到的那样,您缺少enctype的引用。

您正试图从表单中获取上载字段,但是表单没有此字段,因此您需要更新文件输入并将其重命名为upload[]

此外,您正在尝试通过GET请求提交表单,该请求不会传递数据。

此代码应该可以解决问题(我已对其进行了更改,因此它可以发布到自身而不是您的addpics.php文件中)

<?php

if(isset($_FILES['upload'])){
session_start();
$total = count($_FILES['upload']['name']);

echo "total: " . $total;
for( $i=0 ; $i < $total ; $i++ ) {
    $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
    echo $tempFilePath . "<br>";
    if ($tmpFilePath != ""){
        $newFilePath = "/images/prod/" . $_FILES['upload']['name'][$i];
        echo $newFilePath . "<br>";
        if(move_uploaded_file($tmpFilePath, $newFilePath)) {
            echo $_FILES['upload']['name'];
        }
    }
}}
?>
<form method="post" name="add" enctype="multipart/form-data">
<input type="file" name="upload[]" multiple>
<input type="submit" value=" - ADD - ">
</form>
相关问题