2013-06-10 12 views
13

E 'possibile caricare file in symfony2 SENZA usare la dottrina? Con dottrina, il suo esempio è dato qui: http://symfony.com/doc/2.2/cookbook/doctrine/file_uploads.htmlsymfony2 come caricare file senza la doctrina?

C'è un modo semplice per caricare file, come nel core PHP abbiamo la funzione move_uploaded_file() con cui possiamo spostare il file caricato dopo che il modulo è stato inviato.

Per ora quando inviare il modulo in symfony questo è ciò che ottengo nella sezione della richiesta di array (Symfony \ Component \ HttpFoundation \ Request)

[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 
         ) 

       ) 

     ) 

risposta

33

'files' Dopo aver inviato il modulo, spostare il file alla directory desiderata e riceverai in cambio un oggetto File.

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

Date un'occhiata al the API-Manual per la documentazione piena funzionalità di questa classe.

+0

grazie per la risposta, come posso creare objecct $ uploadfile, come questo $ uploadfile = new \ Symfony \ Component \ HttpFoundation \ File \ UploadedFile(); – Rahul

+0

Dopo aver inviato il modulo, si troveranno già in file '$ request->;'. In questo modo puoi scorrere questo array e spostare tutti i file che hai inviato in primo luogo. – devsheeep

+0

Se uso sopra per loop, sembra caricare solo il file temporaneo, ho selezionato un png per il caricamento nella directory di upload. Vedo che il file temporaneo caricato non è il file temp dell'immagine png ha il nome php483.tmp. Mi sto perdendo qualcosa qui? – Rahul

Problemi correlati