2 回答

TA貢獻1850條經驗 獲得超11個贊
問題是模型類中的驗證。我已經將它們標記為safe
[['mainImage','productImage'], 'safe'],
我注釋掉了這個驗證并且它起作用了

TA貢獻1828條經驗 獲得超13個贊
如果要上傳多個文件,則需要更改視圖
<?= $form->field($model, 'mainImage')->fileInput() ?>
<?= $form->field($model, 'productImage[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?>
并且您的ruleinmodel說您一直在嘗試上傳多個圖像的屬性productImage[]和mainImage. 但是視圖表示該屬性mainImage用于單個文件,因此更改規則。
[['mainImage'], 'file', 'skipOnEmpty' => true, 'extensions' => 'jpeg, jpg, png'],
[['productImage'], 'file','skipOnEmpty' => true, 'extensions' => 'jpeg, jpg, png','checkExtensionByMimeType'=>false, 'maxFiles'=>10],
在控制器中,
$model->productImage = UploadedFile::getInstances($model, 'productImage');
$model->mainImage = UploadedFile::getInstance($model, 'mainImage');
if ($model->multipleImageUpload()) {
// file is uploaded successfully
return;
}
在你的模型中,
public function multipleImageUpload()
{
if ($this->validate()) {
foreach ($this->imageFiles as $file) {
$file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
}
return true;
} else {
return false;
}
}
如需更多參考,請訪問此鏈接:https : //www.yiiframework.com/doc/guide/2.0/en/input-file-upload
- 2 回答
- 0 關注
- 190 瀏覽
添加回答
舉報