@Miri_Skava

Как удалить файл с сервера?

Здравствуйте!
Столкнулась с такой проблемой: у меня есть файлы которые я сама добавила в папку и они спокойно удаляются при помощи 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;
    }
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Жалко места на диске?) Отправляйте файлы в AWS s3 и храните там все это за копейки. И ничего удалять не придется.
Ответ написан
Комментировать
@LemonFox
stateless mind
Используйте события
https://www.yiiframework.com/doc/api/2.0/yii-db-ba...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы