Устранение неполадок при загрузке файла с кодом ошибки 4 - PullRequest
7 голосов
/ 06 декабря 2011

Я пытаюсь загрузить несколько файлов на мой сервер.Если я пытаюсь загрузить один файл, он работает нормально.но если я попробую больше одного, он выдаст мне код ошибки 4, даже если он правильно напечатает имя всех файлов.Ничего не загружено.У меня правильно установлен тип ввода.Кто-нибудь может мне помочь?

Choose Image:&nbsp;&nbsp;<input name="uploadedfile[]" type="file" multiple="true"/><br /><br /><br />
            <input type="submit" value="Upload Image!" style="margin-left:100px;"/>

Ниже приведен код:

$i=0;
foreach($_FILES['uploadedfile']['name'] as $f)
{
    $file['name'] = $_FILES['uploadedfile']['name'][$i];
    $file['type'] = $_FILES['uploadedfile']['type'][$i];
    $file['tmp_name'] = $_FILES['uploadedfile']['tmp_name'][$i];
    $file['error'] = $_FILES['uploadedfile']['error'][$i];
    $file['size'] = $_FILES['uploadedfile']['size'][$i];
    if ($file["error"] > 0)
    {
        echo "Error Code: " . $file["error"];
    }

    $target_path = "uploads/".basename($file["name"]); 

    if(move_uploaded_file($file["tmp_name"], $target_path)) 
    {
        echo basename($file['name'])."<br />";
        echo basename($file['tmp_name'])."<br />";
        echo $target_path;

    } else{
        echo "There was an error uploading the file, please try again!";
    }
    $i++;
}

и моя HTML-форма

<div id="album_slider">
    <div style="text-align:center;margin:20px auto;font-size:27px;">Upload Image</div>
    <br style="clear:both;font-size:0;line-height:0;height:0;"/>
    <div style="width:700px;margin:auto;height:250px;text-align:left;">
        <form enctype="multipart/form-data" action="uploader.php" method="POST" name="form">
            Image Name:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="image_name" id="image_name"/><br /><br /><br />
            <input type="hidden" name="a_id" id="a_id" value="<?php echo $a_id; ?>"/>
            Choose Image:&nbsp;&nbsp;<input name="uploadedfile[]" type="file" multiple="true"/><br /><br /><br />
            <input type="submit" value="Upload Image!" style="margin-left:100px;"/>
        </form>
    </div>
    <br style="clear:both;font-size:0;line-height:0;height:1px;"/>
</div>

Ответы [ 2 ]

6 голосов
/ 06 декабря 2011

Попробуйте:

foreach ($_FILES["uploadedfile"]["error"] as $key => $error) {
   if ($error == UPLOAD_ERR_OK) {
       echo "$error_codes[$error]";
       move_uploaded_file(
         $_FILES["uploadedfile"]["tmp_name"][$key],
         $target_path
       ) or die("Problems with upload");
   }
}
3 голосов
/ 06 декабря 2011

Что ж, произойдет сбой, так как вы хотите загрузить НЕСКОЛЬКО файлов, но ваш код предназначен только для обработки одного файла.

Продолжите и прочитайте, как обрабатывать несколько файловздесь:
http://php.net/manual/en/features.file-upload.multiple.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...