代码之家  ›  专栏  ›  技术社区  ›  varad mayee

图像未移动到正确的文件夹zend framework2

  •  1
  • varad mayee  · 技术社区  · 8 年前

    我开始处理Zend Framework图像上传。代码没有显示任何错误,但图像没有移动到正确的目标。

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

    未收到图像并给出失败消息。你能解决这个问题吗。提前谢谢

    2 回复  |  直到 8 年前
        1
  •  1
  •   Wilt    8 年前

    你写 “给出失败消息” 所以很明显有些地方出了问题。你应该试着找出问题的内容和原因……我们所能做的就是根据你在问题中提供的信息进行猜测。

    如果您阅读了有关此文件适配器类的ZF2文档 here 然后您可以看到adaper有一个 getMessages 方法这可能会让您对实际出现的问题有一些了解:

    $adapter = new Zend\File\Transfer\Adapter\Http();
    $adapter->setDestination('public/img/upload');
    
    if (!$adapter->receive()) {
        $messages = $adapter->getMessages();
        echo implode("\n", $messages);
    }
    

    这个代码片段直接来自官方文档!

        2
  •  1
  •   BeDeveloper    8 年前

    最后运行的代码确保注释过滤器

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