Symfony2文件上传获取原始文件名
Posted
技术标签:
【中文标题】Symfony2文件上传获取原始文件名【英文标题】:Symfony2 file upload get original file name 【发布时间】:2015-07-04 00:27:22 【问题描述】:我无法在文件上传期间检索 originalName。
print_r($request->file) 返回以下内容:
Symfony\Component\HttpFoundation\FileBag Object
(
[parameters:protected] => Array
(
[form_name] => Array
(
[backgroundImageFile] => Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => bg_image.jpg
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 65045
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => /tmp/phpsU3X7a
[fileName:SplFileInfo:private] => phpsU3X7a
)
)
)
)
echo "<br /> Name= ".$this->getRequest()->files['backgroundImageFile']->getClientOriginalName();
返回:
致命错误:调用成员函数 getClientOriginalName() ../控制器路径中的非对象
那么,我如何获得 OriginalName?
【问题讨论】:
【参考方案1】:尝试在 FileBag 上使用 get() 方法,而不是数组访问。
例如,
$this->getRequest()->files->get("backgroundImageFile")->getClientOriginalName();
或者,如果在您的场景中有意义,请使用表单上传,然后将上传的文件作为表单数据访问。
【讨论】:
我仍然收到致命错误:调用控制器的 ../path 中的非对象上的成员函数 getClientOriginalName()。我只需要在提交表单之前获取原始文件名 @kewpe20 在提交表单之前,不会上传文件。上传发生在表单提交时,所以在此之前没有什么可以命名的。 如果你能把你的代码放在某个地方让我看一下,我会看看你的具体实例发生了什么。以上是关于Symfony2文件上传获取原始文件名的主要内容,如果未能解决你的问题,请参考以下文章