2013-11-15 1 views
0

Symfony Forms데이터베이스의 이미지 삭제 symfony2

이 모든 것이 올바르게 작동합니다. 한 가지 확실하지 않은 점은 데이터베이스의 관련 항목이 삭제 될 때 업로드 폴더에 업로드 된 이미지를 삭제하는 방법입니다.

나는 올바른 방향으로 나아가는 방법에 대한 아이디어가 정말로 필요합니다.

미리 감사드립니다.

답변

1

당신은

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

... 모두 내가 엔티티에 있던 코드에 var에 덤프를 한 정확합니다. 업로드 그것은 내가 뭔가를 올바르게 파일을 삭제 다음

/** 
* @ORM\PostRemove 
*/ 
public function removeUpload() { 
    // ** Original Code used file but logo has the name in it. 

    if(file_exists($this->getAbsolutePath())) { 
     if ($this->getUploadRootDir() . $this->logo = $this->getAbsolutePath()) { 
      unlink($this->logo); 
     } 
    } 
} 

에 코드를 변경

$ 로고 등의 변수를 저장합니다. 둘 다 고마워.

0

삭제 작업에서 수동으로 파일을 삭제해야합니다. 파일 경로를 데이터베이스에 저장한다고 가정하므로 비교적 쉽습니다.

$path = ....//query db to get the path to the file 
if($path){ 
    unlink($path); 
} 

//now you can delete the record in the database 

은 아마 Doctrine2 Lifecycles입니다 찾고 있습니다 어떤 파일

0

을 삭제하는 php docs를 참조하십시오. 그냥 개체에 메서드를 추가

/** 
* @ORM\PreRemove 
*/ 
public function deleteImage() 
{ 
    // unlink your image and what not. 
} 

은 또한 당신의 엔티티 클래스에 대한 @ORM\HasLifecycleCallbacks() 주석을 잊지 마세요. 파일 $ 파일이 비어있는 변수를 보여주는데있는 경우

관련 문제