2016-10-30 6 views
0

Я пытаюсь сделать динамическую форму, которая позволяет пользователю загружать файл, чтобы каждое изображение имело видео, и они должны загружать и сохранять их путь к базе данных, но когда я хочу получить файл в мой контроллер и хранить их в массиве, я видел, когда я загружаю один или два файла, которые работают, но когда я пытаюсь загрузить более 3 или 4 файлов, мой массив становится пустым, и я не могу его решить, пожалуйста, помогите мне завершить мой проект. ,Загрузите несколько файлов из нескольких файлов в laravel 5.2

это мой HTML форма:

<form action="admin/mediaUpload" method="post" enctype="multipart/form-data" id="mediaUpload"> 
    <table class="table table-bordered table-hover" id="tableAddRow"> 
          <thead> 
          <tr> 
           <th>image</th> 
           <th>film</th> 
           <th style="width:10px"><span class="glyphicon glyphicon-plus addBtn" id="addBtn_0"></span></th> 
          </tr> 
          </thead> 
          <tbody> 
          <tr id="tr_0"> 
           <td><input type="file" id="image_0" name="image-0" class="form-control"/></td> 
           <td><input type="file" id="video_0" name="video-0" class="form-control" /></td> 
           <td style="background-color: white;"><span class="glyphicon glyphicon-minus addBtnRemove" style="margin-top: 9px;" id="addBtnRemove_0"></span></td> 
          </tr> 
          </tbody> 
         </table> 

         <input type="submit" name="submit" id="mediaSubmit" value="بارگذاری" class="btn btn-primary" style="float: right; width: 40%"/><br/><br/> 
        </form> 

и это мой контроллер:

public function mediaUpload(uploadRequest $uploadRequest) 
{ 
    $data = $uploadRequest->all(); 
    $numberId = $uploadRequest['numberId']; 
    $rowCount = $uploadRequest['rowCount']; 

    $imageArray = []; 
    $videoArray = []; 

    for($i = 0 ; $i<$rowCount - 1 ;$i++) 
    { 
     $imageArray[$i] = Input::file('image-'.$i); 
    } 

    for($i = 0 ; $i<$rowCount - 1 ;$i++) 
    { 
     $videoArray[$i] = Input::file('video-'.$i); 
    } 

    var_dump($imageArray); 
    var_dump($videoArray); 
} 

ответ

0

Вы можете использовать массив внутри входов:

<tr id="tr_0"> 
    <td><input type="file" id="image_0" name="image[]" class="form-control"/></td> 
    <td><input type="file" id="video_0" name="video[]" class="form-control" /></td> 
</tr> 
<tr id="tr_1"> 
    <td><input type="file" id="image_1" name="image[]" class="form-control"/></td> 
    <td><input type="file" id="video_1" name="video[]" class="form-control" /></td> 
</tr> 
<tr id="tr_2"> 
    <td><input type="file" id="image_2" name="image[]" class="form-control"/></td> 
    <td><input type="file" id="video_2" name="video[]" class="form-control" /></td> 
</tr> 

А потом просто петля запросить имущество:

if (Input::hasFile('video')) { 
    foreach (Input::file('video') as $video) { 
     // do something... 
    } 
} 

То же самое для image

+0

я попробовать свои решения, но если я добавить 5 он не работает, я задаюсь вопросом, что это обнаружить 3 видео или изображение, но не работает на 4 5 или 6 и так далее –

+0

Try увеличить 'upload_max_filesize', затем http://php.net/manual/en/ini.core.php, также проверьте правильность работы вашего front-end. – Roman

+0

i увеличить upload_max_filesize до 500M, но пока не работает :( –