如何从控制器删除照片或如何使用cakephp-upload查看

时间:2019-01-15 19:42:55

标签: cakephp cakephp-3.x

我正在遵循cakephp-upload教程,一切正常。但是,没有有关如何删除文件except for this, which doesn't really help me out.

的文档

我想我必须创建一个控制器函数才能做到这一点,但这已经足够了。

我打算在视图中上传个人资料照片,并使用删除按钮将其从视图中删除。

有没有可以帮助我找到功能的例子?

编辑:一切正常!...除了将我的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 :(得分:1)

我认为您不需要插件即可删除文件。 只需检查文件是否存在,否则您将看到所有错误,最后删除该文件。 例如,以下代码(在您的控制器中):

if(file_exists(<your_url_img>)) {
  unlink(<your_url_img>);
}

答案 1 :(得分:0)

您可以使用Folder和File utilities

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