Yii2 FTP文件上传不起作用

Yii2 FTP文件上传不起作用

问题描述:

我已经使用了yii2mod/yii2-ftp模块来上传FTP上传。但它不直接上传临时文件。Yii2 FTP文件上传不起作用

$uploadPath='/'.ucfirst(Yii::$app->user->identity->district->district->district_name).'/'.'temp/'.$model->quick_string; 
///district/temp/1508159604x16 this my upload folder 
if ($FtpClient->mkdir($uploadPath)){ 
    $source_directory=$model->file->tempName; 
    $target_directory=$uploadPath.'/'.$model->file->name; 
    if($FtpClient->putAll($source_directory, $target_directory,FTP_BINARY)){ 
     echo "success";exit; 
    } 
} 

输出返回的错误

“目录(/ tmp目录/ phpizYNd7):未能打开目录:不是一个目录”

+0

你试图打开一个文件,而不是目录我猜。 –

+0

没有。我已经使用输入类型文件上传了一个文件。 – Rahman

在yii2mod/yii2-FTP的putAll方法考虑作为目录。因此文件无法上传。检查参数是函数内的文件或文件夹。

供应商/ yii2mod/yii2-FTP/ftpClient.php线606

public function putAll($source_directory, $target_directory, $mode = FTP_BINARY) 
{ 

    if(is_dir($source_directory)){ 

     $d = dir($source_directory); 
     // do this for each file in the directory 

     while ($file = $d->read()) { 

      // to prevent an infinite loop 
      if ($file != '.' && $file != '..') { 
       // do the following if it is a directory 
       if (is_dir($source_directory . '/' . $file)) { 
        if ([email protected]$this->ftp->chdir($target_directory . '/' . $file)) { 
         // create directories that do not yet exist 
         $this->ftp->mkdir($target_directory . '/' . $file); 
        } 
        // recursive part 
        $this->putAll(
         $source_directory . '/' . $file, $target_directory . '/' . $file, 
         $mode 
        ); 
       } else { 
        // put the files 
        $this->ftp->put(
         $target_directory . '/' . $file, $source_directory . '/' . $file, 
         $mode 
        ); 
       } 
      } 
     } 
    }else{ 
     $this->ftp->put(
      $target_directory, $source_directory, 
      $mode 
     ); 
    } 

    return $this; 
}