2016-06-11 22 views
1

我開始工作Zend Framework圖像上傳。代碼沒有顯示任何錯誤,但圖像沒有移動到正確的目的地。圖像不移動到適當的文件夾zend framework2

public function uploadAction() 
    { 
     error_reporting(E_ALL); 
     ini_set('display_errors', 1); 
     $form = new UploadForm(); 
     $form->get('submit')->setValue('Add'); 
     $request = $this->getRequest(); 
     if ($request->isPost()) 
     { 
      $profile = new Upload(); 
      $form->setInputFilter($profile->getInputFilter()); 

      $nonFile = $request->getPost()->toArray(); 
      $File = $this->params()->fromFiles('fileupload'); 
      $data = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray()); 
      //print_r($data);die; 
      //set data post and file ... 
      $form->setData($data); 

      if ($form->isValid()) 
      { 

       $favicon = $data['fileupload']['name']; 
       $ext = pathinfo($favicon, PATHINFO_EXTENSION); 
       $faviconnewname = "_favicon." . $ext; 
       $favadapter = new \Zend\File\Transfer\Adapter\Http(); 
       $favadapter->setDestination('public/img/upload'); //upload destination 
       $favadapter->addFilter('Rename', $faviconnewname, $favicon); 
       if($favadapter->receive($favicon)) 
       { 
        echo "suceess"; 
       } 
       else 
       { 
        echo "Failed"; 
       } 
       die; 
      } 
     } 
     return array('form' => $form); 
    } 

圖像沒有收到並給出失敗message.Can你提前

+0

試試這個$ favadapter-> setDestination( '公共/ IMG /上傳/'); //上傳目的地 –

+0

@DilDilshan不能正常工作 –

+0

請確保該文件夾存在於服務器並且具有寫入權限 –

回答

1

解決這個problem.Thanks你寫「給失敗的消息」所以顯然出了差錯。你應該嘗試找出什麼和爲什麼......我們所能做的就是猜測你在問題中提供的信息。

如果你對這個文件適配器類here閱讀ZF2文檔,那麼你就可以看到adaper有getMessages方法。這可能給你究竟是什麼不順心的一些見解:

$adapter = new Zend\File\Transfer\Adapter\Http(); 
$adapter->setDestination('public/img/upload'); 

if (!$adapter->receive()) { 
    $messages = $adapter->getMessages(); 
    echo implode("\n", $messages); 
} 

這段代碼來直接從官方文檔的!

+0

感謝它解決了我的問題是由於過濾器:) –

1

你的最終運行的代碼確認你註釋濾波器

public function uploadAction() 
    { 
     error_reporting(0); 
     $em = $this->getEntityManager(); 
     $form = new UploadForm($em); 
     $form->get('submit')->setValue('Add'); 
     $request = $this->getRequest(); 
     if ($request->isPost()) 
     { 
      $profile = new Upload(); 
      $form->setInputFilter($profile->getInputFilter()); 

      $nonFile = $request->getPost()->toArray(); 
      $File = $this->params()->fromFiles('fileupload'); 
      $data = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray()); 
      //print_r($data);die; 
      //set data post and file ... 
      $form->setData($data); 

      if ($form->isValid()) 
      { 
       $favicon = $data['fileupload']['name']; 
       $ext = pathinfo($favicon, PATHINFO_EXTENSION); 
       $faviconnewname = "_favicon." . $ext; 
       $favadapter = new \Zend\File\Transfer\Adapter\Http(); 
       $favadapter->setDestination('public/img/upload/'); //upload destination 
       //$favadapter->addFilter('Rename', $faviconnewname, $favicon); 
       if (!$favadapter->receive()) 
       { 
        $messages = $adapter->getMessages(); 
        echo implode("\n", $messages); 
       } 
       else 
       { 
        echo "success"; 
       } 
       // die; 
      } 
     } 
//  if ($request->isPost()) 
//  { 
//   $fname = $_FILES['fileupload']['name']; 
//   $tmp_name = $_FILES["fileupload"]["tmp_name"]; 
//   $uploads_dir = 'public/img/upload'; 
//   if(move_uploaded_file($tmp_name,"$uploads_dir/$fname")) 
//   { 
//    echo "Uploaded"; 
//   } 
//   else 
//   { 
//    echo "Error"; 
//   } 
//  } 
     return array('form' => $form); 
    }