2016-07-19 1 views
3

나는 우리의 웹 사이트에 여러 개의 이미지를 업로드하는 함수를 짓고 있어요, 지금까지 내 업로드 형태로 이것을 가지고 :여러 이미지 업로드 Symfony 3에서 하나의 이미지 만 업로드 하시겠습니까?

<div class="tabs-panel" id="panel3v"> 
     {{ form_start(iu,{action:path('admin_upload-images')}) }} 

     <div class="row"> 
      <div class="small-3 medium-3 large-3 columns field-label"> 
       <label>Image ID</label> 
      </div> 
      <div class="small-9 medium-9 large-9 columns"> 
       {{ form_widget(iu.id) }} 
       {{ form_errors(iu.id) }} 
      </div> 
     </div> 

     <div class="row"> 
      <div class="small-3 medium-3 large-3 columns field-label"> 
       <label>Image Upload</label> 
      </div> 
      <div class="small-9 medium-9 large-9 columns"> 
       {{ form_widget(iu.image) }} 
       {{ form_errors(iu.image) }} 
      </div> 
     </div> 

     <div class="row"> 
      <div class="small-6 medium-6 large-6 columns"> 
       <button type="submit" class="button" id="saveBtn">Save Changes</button> 
      </div> 
     </div> 

     {{ form_end(iu) }} 
    </div> 
이 다음과 같은 파일 나뭇 가지에 표시됩니다

<?php 
namespace Tyson\AdminBundle\Form; 

use Doctrine\ORM\EntityRepository; 
use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 

use Symfony\Component\Form\Extension\Core\Type\FileType; 
use Symfony\Component\Form\Extension\Core\Type\IntegerType; 

class IuType extends AbstractType 
{ 

    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 

     $builder->add('id', IntegerType::class); 
     $builder->add('image', FileType::class, array(
      'attr' => array(
       'multiple' => 'true', 
       'data_class' => null 
      ) 
     )); 
    } 

    public function getName() 
    { 
     return 'iu'; 
    } 

} 

테스트가 진행되는 동안이 내용이 제출되면 양식을 통해 컨트롤러로 넘겨주는 내용을 출력합니다.

[files] => Symfony\Component\HttpFoundation\FileBag Object 
    (
     [parameters:protected] => Array 
      (
       [iu] => Array 
        (
         [image] => Symfony\Component\HttpFoundation\File\UploadedFile Object 
          (
           [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
           [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => CnY8dRqXYAAoaAw.jpg 
           [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg 
           [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 35164 
           [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 
           [pathName:SplFileInfo:private] => /tmp/phpibZuVW 
           [fileName:SplFileInfo:private] => phpibZuVW 
          ) 

        ) 

      ) 

나는 하나 개의 이미지, 또는 100 개 이미지 및 컨트롤러가 다른 작업을 수행하기 전에 여전히 형식은 나에게 하나 개의 이미지를 전달하고를 선택할 수 있습니다 :이 출력됩니다.

참고로

이 지금까지 내 컨트롤러 코드입니다 :

<?php 

namespace Tyson\AdminBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\Security\Core\SecurityContext; 
use Symfony\Component\Security\Core\User\UserInterface; 

use Tyson\CoreBundle\Entity\Images; 

use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Cookie; 
use Symfony\Component\HttpFoundation\Session\Session; 
use Symfony\Component\Form\Form; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\RedirectResponse; 
use Symfony\Component\HttpFoundation\JsonResponse; 
use Symfony\Component\Filesystem\Filesystem; 
use Symfony\Component\Filesystem\Exception\IOExceptionInterface; 

use Symfony\Component\HttpFoundation\File\UploadedFile; 

class UploadController extends Controller 
{ 
    public function uploadimagesAction(Request $request) 
    { 

     $fs = new Filesystem(); 

     $dm = $this->getDoctrine()->getManager(); 

     $dir = '/var/www/html/tyson/web/uploads/images/'; 

     $request = $this->get('request_stack')->getCurrentRequest(); 

     $formdet = $request->request->get('iu'); 
     $imgId = $formdet['id']; 

     $folderPath = '/var/www/html/tyson/web/uploads/images/'.$imgId; 
     $imgDirectory = '/var/www/html/tyson/web/uploads/images/'.$imgId.'/'; 

     $folderCheck = $fs->exists($folderPath); 

     print_r($request); 
     die(); 

    } 

} 
나는 형태 번 제출로 file 출력 (컨트롤러에 하나 개 이상의 이미지를하지 포함해야 상상할 것

반복적으로), 그래서 내가이 일이 잘못되도록 무엇을하고 있습니까?

답변

0

같은 문제는 내가

  $builder->add('files', FileType::class, array('required' => false, 
      'mapped' => false, 
      'attr' => array(
       'multiple' => true 
      ), 
     )); 

하나의 파일이 제출 형성한다. 지금 당장은 해결책이 없다. 자바 스크립트로 []를 업로드 이름에 추가 할 것이다.