【问题标题】:Symfony2 file upload get original file nameSymfony2文件上传获取原始文件名
【发布时间】: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?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    尝试在 FileBag 上使用 get() 方法,而不是数组访问。

    例如,

    $this->getRequest()->files->get("backgroundImageFile")->getClientOriginalName();
    

    或者,如果在您的场景中有意义,请使用表单上传,然后将上传的文件作为表单数据访问。

    【讨论】:

    • 我仍然收到致命错误:调用控制器的 ../path 中的非对象上的成员函数 getClientOriginalName()。我只需要在提交表单之前获取原始文件名
    • @kewpe20 在提交表单之前,不会上传文件。上传发生在表单提交时,所以在此之前没有什么可以命名的。
    • 如果你能把你的代码放在某个地方让我看一下,我会看看你的具体实例发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2016-04-27
    • 2013-05-21
    • 2015-12-17
    • 1970-01-01
    • 2020-12-06
    • 2021-10-13
    相关资源
    最近更新 更多