1

エンティティを削除するときに、このコードを使用して画像を削除します

  /**
     * @ORM\PostRemove()
     */
    public function removeUpload()
    {
        if ($this->filenameForRemove)
        {
            unlink ( $this->filenameForRemove );
        }
    }

しかし問題は、そこに画像がない場合、このような例外がスローされることです

Warning: unlink(/home/site/../../../../uploads/50343885699c5.jpeg) [<a href='function.unlink'>function.unlink</a>]: No such file or directory i

ファイルが存在しない場合、またはディレクトリが存在しない場合、この手順をスキップしてエンティティを削除する方法はありますか

4

2 に答える 2

3

を使用file_existsして、ファイルが実際に存在することis_writableを確認し、それを削除する権限があることを確認できます。

if ($this->filenameForRemove)
{
    if (file_exists($this->filenameForRemove) &&
        is_writable($this->filenameForRemove))
    {
        unlink ( $this->filenameForRemove );
    }
}
于 2012-09-14T00:33:05.310 に答える