Как удалить фотографии из контроллера или просмотреть с помощью cakephp-upload - PullRequest
0 голосов
/ 15 января 2019

Я следую учебнику cakephp-upload , и все работает хорошо. Тем не менее, нет никакой документации о том, как удалять файлы , за исключением этого, что на самом деле мне не помогает.

Я полагаю, что для этого мне нужно создать функцию контроллера, но это так же, как сейчас.

Я планирую иметь вид с загруженной фотографией профиля и кнопку удаления, чтобы удалить его из вида.

Есть ли какой-нибудь функциональный пример, который вы можете мне помочь найти?

Редактировать: все работает! ... за исключением того, что для моего поля photo установлено значение NULL. Я уже проверил валидатор для ->allowEmpty('photo', 'create') и ->allowEmpty('photo', 'update'). У меня заканчиваются идеи, но я просто задам новый вопрос, чтобы навести порядок. Большое спасибо!

    if ($this->request->is(['patch', 'post', 'put'])) {
        $brigada = $this->Brigadas
                    ->findById($id)
                    ->firstOrFail();       
        $file = WWW_ROOT . 'files/Brigadas/photo' . $brigada->photo_dir . '/' . $brigada->photo;
        if(file_exists($file)) {
            unlink($file);
        }
        $brigada->dir = null;
        $brigada->photo = null;
        $this->Brigadas->save($brigada);
    }

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Я думаю, вам не нужен плагин для удаления файла. Просто проверьте, существует ли файл, иначе вы увидите все ошибки и, наконец, удалите файл. Например, следующий код (в вашем контроллере):

if(file_exists(<your_url_img>)) {
  unlink(<your_url_img>);
}
0 голосов
/ 16 января 2019

Вы можете использовать папку и Файловые утилиты

$file = new File(WWW_ROOT.'/img/'.$user->image);
$file->delete();
...