【问题标题】:ZF2 Image Upload Warning "Creating default object from empty value"ZF2 图像上传警告“从空值创建默认对象”
【发布时间】:2013-10-29 15:36:51
【问题描述】:

我在 Zend Framework 2 中上传图像时遇到问题,当我提交带有图像的表单时,它会给出“从空值创建默认对象”警告,并且文件不会保存在文件夹中。

如果我提交带有空白图片的表单并上传,那么内容将保存在数据库中。

我已添加我的代码以供参考

public function addAction(){
    $form = new Add();
    $brand = new Brand();
    $form->bind($brand);


    $request = $this->getRequest();




    if ($request->isPost()) {

        $post = array_merge_recursive(
            $request->getPost()->toArray(),
            $request->getFiles()->toArray()
        );


        $adapter = new \Zend\File\Transfer\Adapter\Http();
        $files = $adapter->getFileInfo();
        $mediaFileHttpPostName = 'image-file';

        $imageFile = $files[$mediaFileHttpPostName];


        $adapter->setDestination('./public/media');
        $adapter->addValidator('Extension', false, array('jpge'), $mediaFileHttpPostName);

        $adapter->addFilter('Rename',
            array(
                'target'=>  './public/media/'.$imageFile['name'],
                'overwrite'=>true),
            $mediaFileHttpPostName);

        if(!empty($imageFile['name'])){
            if (!$adapter->isValid()){
                $returnObject->errorMessage = $adapter->getMessages();
                $returnObject->result = 0;
            } else {
                try {
                    $adapter->receive($mediaFileHttpPostName);
                    $returnObject->result = 1;
                } catch (\Zend\Filter\Exception\InvalidArgumentException $e) {
                    $returnObject->errorMessage = $e->getMessage();
                    $returnObject->result = 0;
                }
            }
        }

        $form->setData($post );

        if ($form->isValid()) {

             $recordlist = $this->getServiceLocator()->get('BrandService')->insert($brand,'',$form->getHydrator());
            $this->flashMessenger()->addMessage('New brand added!');
           return $this->redirect()->toRoute('zfcadmin/shop/brands');

        }
    }

【问题讨论】:

    标签: php file-upload zend-framework2


    【解决方案1】:

    你没有声明$returnObject

    你应该这样做:

    ....
    if ($request->isPost()) {
       $returnObject= new stdClass();
    ...
    

    【讨论】:

    • new \stdClass()use stdClass;
    • 感谢 t-coder,$returnObject= new stdClass();对我不起作用,它给了我致命错误,但是 $returnObject= new \stdClass();解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多