获取文件的原始名称

时间:2015-05-05 15:51:17

标签: symfony oneupuploaderbundle

我有一个问题是获取由oneupuploaderbundle上传的文件的原始名称

如果我使用

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

(参见这篇文章Get Uploaded File's Original Name) 我有这个错误:

  

FatalErrorException:错误:无法使用对象   键入Symfony \ Component \ HttpFoundation \ FileBag作为数组   /home/.../UploadListener.php   第17行

但我认为是正确的,请参阅var_dump:

$request = $event->getRequest();
var_dump($request->files);

给:

object(Symfony\Component\HttpFoundation\FileBag)#11 (1) {
  ["parameters":protected]=>
  array(1) {
    ["file"]=>
    array(1) {
      [0]=>
      object(Symfony\Component\HttpFoundation\File\UploadedFile)#12 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(22) "silk_icons_preview.png"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(9) "image/png"
        ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(116463)
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["pathName":"SplFileInfo":private]=>
        string(14) "/tmp/php3GUXwQ"
        ["fileName":"SplFileInfo":private]=>
        string(9) "php3GUXwQ"
      }
    }
  }
}

谢谢!

2 个答案:

答案 0 :(得分:2)

你必须这样做:

$this->getRequest()->files->get('file')->getClientOriginalName();

'file'值是文件输入的名称。

答案 1 :(得分:0)

我的功能:

 public function onUpload(PostPersistEvent $event) {
      $test = $event->getRequest()->files->get('upload')->getClientOriginalName();
      var_dump($test);
    }

我的表格:

<form action="{{ oneup_uploader_endpoint('gallery') }}" class="dropzone" name="upload" type="file" method="post" id="doc"></form>

做:

  

FatalErrorException:错误:调用成员函数   getClientOriginalName()在非对象中   /home/www/.../UploadListener.php第19行