2017-06-27 8 views
0

にファイルが作成されていないという明白な理由はありますか?権限は正しいです。ファイルのアップロードZF2

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

答えて

0

アップロードされたファイルを移動先のまま残しておきます。 $httpadapter->receive()アップロードされたファイルをチェックするだけです。アップロードしたファイルを移動する目的ではありませんでした。これにはFilterを使用し、File\Renameフィルタを呼び出す必要があります。

$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(); 
} 
+0

@beingalexさん、もし助けがあればこの回答をアップしてください –