2013-11-15 3 views
0

Я пытаюсь создать сценарий многофайловой загрузки для нескольких галерей изображений, и я столкнулся с странной ошибкой.Несколько форматов загрузки файлов не отправляются

Поскольку у меня есть несколько галерей, у которых все есть свои собственные каталоги, я хочу сказать сценарий, где разместить мои загруженные файлы. Таким образом, я добавил несколько переключателей, чтобы удовлетворить эту потребность. Когда я загрузить файлы, они обрабатываются код, поставляемый вместе с помощью следующей формы:

<?php 
/* upload.php */ 
if(isset($_GET['upload']) && isset($_POST['loc'])){ 
    $loc = $_POST['loc']; 
    $dir = getDir($loc); //Returns the directory to upload to, -1 on invalid input 
    if($dir != -1){ 
     $i = 0; 
     foreach($_FILES as $file){ 
      foreach($file as $key=>$v){ 
       foreach($v as $f){ 
        $files[$i][$key] = $f; 
        $i++; 
       } 
       $i=0; 
      } 
     } 
     foreach($files as $file) 
      uploadImage($file,$dir); //Uploads files to proper directory 
    }else{ 
     print "Bad user! Don't alter things!"; 
    } 
}elseif(!isset($_POST['loc']) && isset($_POST['submit'])){ 

    /* I should end up here if no location is supplied and the form is submitted */ 

    print "Enter a location please"; 
} 
?> 

<form action="upload.php?upload" method="post" enctype="multipart/form-data"> 
    <label for="file">Image:</label> 
    <input type="file" name="files[]" id="file" multiple="multiple" required><br /> 
    <label for="dir1">Directory 1</label> 
    <input type="radio" name="loc" id="dir1" value="1"><br /> 
    <label for="dir2">Directory 2</label> 
    <input type="radio" name="loc" id="dir2" value="2"><br /> 
    <label for="dir3">Directory 3</label> 
    <input type="radio" name="loc" id="dir3" value="3"><br /> 
    <input type="submit" name="submit" value="Upload"> 
</form> 

Файла разбора самого работает, поэтому я не поставлю код для вызова функций. То, что не работает (всегда), - это размещение моей формы. Если я попытаюсь загрузить 35 файлов, все будет хорошо работать, и мои изображения будут загружены в правильный каталог. Если я попытаюсь загрузить 40 файлов, сценарий не будет запущен. Поскольку я вижу, что установлено $_GET['upload'], я могу сделать вывод, что $_POST['loc'] нет. Что странно, так как форма, явно представленная как $_GET['upload'], была установлена, как указано в действии формы. «Введите местоположение пожалуйста» не отправляется, когда я получаю эту ошибку, поэтому я знаю, что $_POST['submit'] не размещен ни в одном. Если I var_dump любая из двух переменных возвращает NULL.

Я уже увеличил upload_max_filesize, max_file_uploads и max_execution_time в моем файле php.ini, поэтому проблем не должно быть, и у меня все из идей. Поэтому мой вопрос в том, почему это происходит и что я могу с этим поделать?

ответ

0

Я оглядываюсь и нашел аналогичную проблему here. Я попытался применить решение, предложенное в first answer, которое, похоже, устранило проблему.

Смежные вопросы