我有一个问题是获取由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"
}
}
}
}
谢谢!
答案 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行