Zend framework2 文件上传ZF2

Zend framework2 文件上传ZF2,zend-framework2,Zend Framework2,是否有明显的原因说明/data/stockhelper中没有装入文件。权限是正确的 public function uploadAction() { $request = $this->getRequest(); if($request->isPost()) { $files = $request->getFiles()->toArray(); $httpadapter = new \Zend\File\Trans

是否有明显的原因说明
/data/stockhelper
中没有装入文件。权限是正确的

public function uploadAction()
{

    $request = $this->getRequest();

    if($request->isPost()) {

        $files =  $request->getFiles()->toArray();

        $httpadapter = new \Zend\File\Transfer\Adapter\Http();
        $filesize  = new \Zend\Validator\File\Size(array('max' => 100000 )); //1KB
        $extension = new \Zend\Validator\File\Extension(array('extension' => array('xlsx')));

        $httpadapter->setValidators(array($filesize, $extension), $files['file']['name']);
        if($httpadapter->isValid()) {
            // We get here.

// move_uploaded_file($_FILES['file']['tmp_name'], sprintf('./data/stockhelper/%s.%s', sha1_file($_FILES['file']['tmp_name']), 'xlsx')); // <--- this works


            $httpadapter->setDestination('./data/stockhelper');
            if($httpadapter->receive($files['file']['name'])) {
                // We don't get here;
                $newfile = $httpadapter->getFileName();
                var_dump($newfile);
            }


        }
    }


    die();
}
public函数uploadAction()
{
$request=$this->getRequest();
如果($request->isPost()){
$files=$request->getFiles()->toArray();
$httpadapter=new\Zend\File\Transfer\Adapter\Http();
$filesize=new\Zend\Validator\File\Size(数组('max'=>100000));//1KB
$extension=new\Zend\Validator\File\extension(数组('extension'=>array('xlsx'));
$httpadapter->setValidators(数组($filesize,$extension),$files['file']['name']);
如果($httpadapter->isValid()){
//我们到了这里。
//move_上传的_文件($_文件['file']['tmp_名称']、sprintf('./data/stockhelper/%s.%s)、sha1_文件($_文件['file']['tmp_名称']、'xlsx');//setDestination('./data/stockhelper');
如果($httpadapter->receive($files['file']['name'])){
//我们没有到达这里;
$newfile=$httpadapter->getFileName();
var_dump($newfile);
}
}
}
模具();
}

我看到这只是将上传的文件移动到目的地的剩余部分<代码>$httpadapter->receive()仅用于检查是否上载了文件。它不是用来移动上传的文件的。您应该为此使用
Filter
,并调用
File\Rename
Filter

$httpadapter->setDestination('./data/stockhelper');
$httpadapter->setValidators(array($filesize, $extension), $files['file']['name']);
$httpadapter->addFilter('File\Rename', array('target' => $httpadapter->getDestination() . DIRECTORY_SEPARATOR . sha1_file($files['file']['name']) . '.xls', 'overwrite' => true));

if (!$adapter->receive()) {
    // uploading error
    $messages = $httpadapter->getMessages();
} else {
    $newfile  = $httpadapter->getFileName();
}