2013-06-10 8 views
13

Czy można przesłać pliki w symfony2 BEZ korzystania z doktryny? Z doktryną podaje się jej przykład: http://symfony.com/doc/2.2/cookbook/doctrine/file_uploads.htmlsymfony2 jak wgrać plik bez doktryny?

Czy istnieje prosty sposób przesyłania plików, np. W rdzeniu PHP mamy funkcję move_uploaded_file(), z którą możemy przenieść przesłane do pliku po przesłaniu formularza.

Teraz kiedy złożyć formularz w symfony jest to, co mam w sekcji „Files” na żądanie tablicy (Symfony \ Komponent \ HttpFoundation \ życzenie)

[files] => Symfony\Component\HttpFoundation\FileBag Object 
     (
      [parameters:protected] => Array 
       (
        [upload_cover] => Symfony\Component\HttpFoundation\File\UploadedFile Object 
         (
          [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
          [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => secret_of_success.png 
          [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/png 
          [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 157958 
          [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 
          [pathName:SplFileInfo:private] => C:\xampp\tmp\php3636.tmp 
          [fileName:SplFileInfo:private] => php3636.tmp 
         ) 

       ) 

     ) 

Odpowiedz

33

Po wysłaniu formularza, przenieść plik do żądanego katalogu, a otrzymasz w zamian obiekt File.

foreach($request->files as $uploadedFile) { 
    $name = //... 
    $file = $uploadedFile->move($directory, $name); 
} 

Spójrz na the API-Manual do pełni funkcjonalnym dokumentacji tej klasy.

+0

dzięki za odpowiedź, w jaki sposób można stworzyć objecct $ uploadfile, tak $ uploadfile = new \ Symfony \ Komponent \ HttpFoundation \ pliku \ UploadedFile(); – Rahul

+0

Po przesłaniu formularza będą już dostępne w '$ request-> files;'. Możesz więc przechodzić przez tę tablicę i przesuwać każdy wysłany plik w pierwszej kolejności. – devsheeep

+0

Jeśli używam powyższej pętli, wydaje się, że przesyła tylko pliki tymczasowe, wybrałem png do przesłania w katalogu przesyłania. Widzę, że plik tymczasowy został załadowany, a nie plik png image temp ma nazwę php483.tmp. Czy coś mi umyka? – Rahul