0

Zend Framework 2 での画像のアップロードで問題が発生しています。画像を含むフォームを送信すると、「空の値からデフォルト オブジェクトを作成しています」という警告が表示され、ファイルがフォルダーに保存されません。

画像用の空のフィールドを含むフォームを送信してアップロードすると、コンテンツが DB に保存されます。

参照用にコードを追加しました

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');

        }
    }
4

1 に答える 1

0

あなたは宣言していません$returnObject

やったほうがいい:

....
if ($request->isPost()) {
   $returnObject= new stdClass();
...
于 2013-10-21T08:35:53.297 に答える