Php Yii2-Kartik/UploadFile 500错误上传照片

Php Yii2-Kartik/UploadFile 500错误上传照片,php,image,file-upload,yii2,Php,Image,File Upload,Yii2,我在“多次上传”中上传一些图片时出错。如果我尝试在没有这些图像的情况下上传galeries,小部件就会正常工作 图像: 我的表格: $form = ActiveForm::begin([ 'id' => 'Item', 'layout' => 'horizontal', 'enableClientValidation' => false, 'errorSummaryCssClass' => 'error-summary alert aler

我在“多次上传”中上传一些图片时出错。如果我尝试在没有这些图像的情况下上传galeries,小部件就会正常工作

图像:

我的表格:

$form = ActiveForm::begin([
    'id' => 'Item',
    'layout' => 'horizontal',
    'enableClientValidation' => false,
    'errorSummaryCssClass' => 'error-summary alert alert-error',
    'options' => ['enctype'=>'multipart/form-data']
]);

$form->field($gallery, 'images[]')->widget(\kartik\file\FileInput::classname(), [
    'options' => [
        'multiple' => true,
    ],
    'pluginOptions' => [
        'uploadUrl' => 'javascript:;',
        'showCaption' => false,
        'showUpload' => false,
        'overwriteInitial' => false,
        'allowedFileExtensions' => ['jpg', 'jpeg', 'png'],
        'layoutTemplates' => [
            'actionUpload' => '',
        ],
        'browseIcon' => '',
        'browseLabel' => Yii::t('app', 'Select Files'),
        'browseClass' => 'btn btn-block',
        'removeLabel' => Yii::t('app', 'Remove All File'),
        'removeClass' => 'btn btn-block',
    ],
]);
我的控制器:

public function actionCreate()
{
    $model = new Hotel();
    $model->setCurrentLanguage();
    $model->itemType = IElement::ITEM_TYPE_HOTEL;

    if ($model->load($_POST)) {
        $model->coverPhoto = UploadedFile::getInstance($model, 'coverPhoto');
        if ($model->save()) {
            if (isset($_POST['Gallery'])) {
                $gallery = new Gallery();
                $gallery->setAttributes($_POST['Gallery']);
                $gallery->idElement = $model->idItem;
                $gallery->itemType = IElement::ITEM_TYPE_HOTEL;
                $gallery->images = UploadedFile::getInstances($gallery, 'images');
                $gallery->save();
            }
            return $this->redirect(['index']);
        }
    }


    return $this->render('create', [
        'model' => $model,
        'gallery' => new Gallery(),
    ]);
}
画廊模型:

public $images = [];

public function rules()
{
    return array_merge(parent::rules(), [
        [['images', 'removedImages'], 'safe']
    ]);
}

public function save($runValidation = true, $attributeNames = null)
{
    $transaction = $this->getDb()->beginTransaction();
    if(parent::save($runValidation, $attributeNames)){
        foreach($this->images as $image){
            /* @var UploadedFile $image */
            if(!GalleryItem::generateFromImage($image, $this)){
                $transaction->rollBack();
                return false;
            }
        }

        if(strlen($this->removedImages) > 0){
            foreach(explode(',', $this->removedImages) as $itemId){
                $albumItem = GalleryItem::findOne($itemId);

                if($albumItem instanceof GalleryItem && !$albumItem->delete()){

                    $transaction->rollBack();
                    return false;
                }
            }
        }
        $transaction->commit();
        return true;
    }
    $transaction->rollBack();
    return false;
}
图库项目模型:

public static function generateFromImage($imageFile, $gallery)
{
    $image = new self;
    $image->idGallery = $gallery->primaryKey;
    $image->galleryItemOrder = time();

    $path = $image->getBasePath();
    if(!file_exists($path)) {
        mkdir($path, 0777, true);
    }
    $name = uniqid().'_'.strtr($imageFile->name, [' '=>'_']);
    $imageFile->saveAs($path.DIRECTORY_SEPARATOR.$name);

    $image->picture = $name;
    //  var_dump($image->attributes);die();
    if(!$image->save()){
        @unlink($path.DIRECTORY_SEPARATOR.$name);
        return false;
    }
    return true;
}

错误500这是内部服务器错误。在yii调试器中检查它,或者如果它不存在,则在您的Web服务器日志中检查它。这会更清楚。错误500这是内部服务器错误。在yii调试器中检查它,或者如果它不存在,则在您的Web服务器日志中检查它。这样会更清楚。