2013-10-21 116 views
0

我在Zend Framework 2中的圖片上傳問題,其中當我提交表單與圖像它給了一個「從空值創建默認對象」的警告和文件不保存在文件夾中。ZF2圖片上傳警告「從空值創建默認對象」

如果我提交圖像爲空並提交上傳的表單,則內容將保存在數據庫中。

我有我添加代碼參考

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

     } 
    } 

回答

0

您還沒有宣佈$returnObject

你應該這樣做:

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

'新\ stdClass的()'或'使用stdClass的;' – Sam

+0

由於T-編碼器,$返回object =新stdClass的();沒有爲我工作,它給了我致命錯誤,但$ returnObject = new \ stdClass();解決我的問題。 – doubleD

相關問題