Здравствуйте!
Столкнулась с такой проблемой: у меня есть файлы которые я сама добавила в папку и они спокойно удаляются при помощи actionDeletephoto, а вот если я загружаю файл через actionCreatephoto, то удаляется только запись из бд, а файл остается на сервере. Пожалуйста, подскажите, как решить данную проблему.
Контроллер:
protected function findPhoto($id)
{
if(($model=Photo::findOne($id))!==null)
{
return $model;
}
else{
throw new NotFoundHttpException('The requested page does not exits.');
}
}
public function actionDeletephoto($id)
{
$photo=$this->findPhoto($id);
if(file_exists(\Yii::getAlias('@frontend').'/web/img/image/'.$photo->name))
{unlink(\Yii::getAlias('@frontend').'/web/img/image/'.$photo->name);}
$photo->delete();
return $this->redirect(['photo']);
}
public function actionCreatephoto()
{
$model = new FileUploud();
$photo = new Photo();
if($model->load(Yii::$app->request->post()))
{
$file=UploadedFile::getInstance($model,'file');
$model->uploadFile($file);
$photo->saveImage($model->uploadFile($file));
}
return $this->render('createphoto', [
'model' => $model,
'photo' => $photo,
]);
}
модель
class FileUploud extends Model
{
public $file;
public function uploadFile(UploadedFile $files)
{
$this->file=$files;
$filename=strtolower(md5(uniqid($files->baseName)).'.'.$files->extension);
$files->saveAs(\Yii::getAlias('@frontend').'/web/img/image/'.$filename);
return $filename;
}