File upload yii2另存为两个文件,仅保存一个

File upload yii2另存为两个文件,仅保存一个,file-upload,yii2,yii2-advanced-app,File Upload,Yii2,Yii2 Advanced App,我不知道为什么,但我有一个表单,其中我指定了两个上传(预览,细节),当我试图保存它们时,细节被保存,但预览没有。Db的结果与我预期的一样—在imageSrc和imageDetailSrc列中保存了$slug const UPLOAD_FILE_URL = 'uploads/recipes/'; const UPLOAD_FILE_DETAILS_URL = self::UPLOAD_FILE_URL.'details/'; $filePath = self::UPLOAD_FILE_U

我不知道为什么,但我有一个表单,其中我指定了两个上传(预览,细节),当我试图保存它们时,细节被保存,但预览没有。Db的结果与我预期的一样—在imageSrc和imageDetailSrc列中保存了$slug

const UPLOAD_FILE_URL = 'uploads/recipes/';
const UPLOAD_FILE_DETAILS_URL = self::UPLOAD_FILE_URL.'details/';    

$filePath = self::UPLOAD_FILE_URL . $slug . '.' . $this->imageSrc->extension;
            $filePathDetail = self::UPLOAD_FILE_DETAILS_URL . $slug . '.' . $this->imageDetailSrc->extension;

            if ($this->imageSrc->saveAs($filePath) && $this->imageDetailSrc->saveAs($filePathDetail)) {
                $this->imageSrc = $slug . '.' . $this->imageSrc->extension;
                $this->imageDetailSrc = $slug . '.' . $this->imageDetailSrc->extension;
            }

            if ($this->save(false, ['imageSrc', 'imageDetailSrc'])) {
                return true;
            }

Yii2官方文档指出,saveAs函数使用move_uploaded_file()函数来移动临时文件。因此,当您第一次调用saveAs函数时,临时文件将被删除。如果不希望saveAs删除,则应将false作为第二个参数发送到saveAs函数

const UPLOAD_FILE_URL = 'uploads/recipes/';
const UPLOAD_FILE_DETAILS_URL = self::UPLOAD_FILE_URL.'details/';    

$filePath = self::UPLOAD_FILE_URL . $slug . '.' . $this->imageSrc-
>extension;
$filePathDetail = self::UPLOAD_FILE_DETAILS_URL . $slug . '.' . $this->imageDetailSrc->extension;

if ($this->imageSrc->saveAs($filePath, false) && $this->imageDetailSrc->saveAs($filePathDetail)) {
      $this->imageSrc = $slug . '.' . $this->imageSrc->extension;
      $this->imageDetailSrc = $slug . '.' . $this->imageDetailSrc->extension;
}
if ($this->save(false, ['imageSrc', 'imageDetailSrc'])) {
   return true;
}