2013-11-25 39 views
14
$request = $event->getRequest(); 
print_r($request->files);die; 

給我獲取上傳文件的原始名稱

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

       ) 

     ) 

) 

我試圖獲得在對「ORIGINALNAME」,即「Chrysanthemum.jpg」值,而不訴諸一個循環,但我做不到似乎找到了正確的語法

使用1UP文件上傳,但我不認爲

回答

5

這清盤工作對我來說,我猜OneUp類處理有點不同

use Oneup\UploaderBundle\Event\PostPersistEvent; 
class UploadListener 
{ 
    public function onUpload(PostPersistEvent $event) 
    { 

     $request = $event->getRequest(); 
     $original_filename = $request->files->get('blueimp')->getClientOriginalName(); 
    } 
} 

培訓相關前端

<input id="fileupload" type="file" name="blueimp" data-url="{{ oneup_uploader_endpoint('images') }}" multiple /> 
14

當你上傳你文件很重要UploadFileAPI link)對象(AR的基本包裝射線)。

$this->getRequest()->files[0]->getClientOriginalName(); 

現在不能試試這個,但你可能需要做這個:

$this->getRequest()->files['name_of_file_field_in_post']->getClientOriginalName(); 

,你將與你的表單字段的名稱替換name_of_file_field_in_post

+1

謝謝tjhe響應,我得到這個錯誤 FatalErrorException:錯誤:無法使用類型的Symfony \組件的對象\ HttpFoundation \ FileBag在陣列/ pathtofile/MediaBundle /事件監聽/UploadListener.php第41行 我輸入的名稱是「files []」 – jriggs

+0

也許這可以幫助某人: 文件不是數組,它是一個參數包(本例中爲FileBag)。它必須迭代,比如'foreach($ request-> files as $ file)''那麼你可以做'getClientOriginalName()'。 – Astaroth

相關問題