Benim app URL depolamak için bir 'Photo
' alanı vardır. Bu Widget şeması için sfWidgetFormInputFileEditable
kullanır. Yeni bir görüntü yüklendiğinde eski imajını silmek için, ben aşırı basmış setter değerini ayarlamadan önce bağlantısını kullanın ve çalışıyor!
if (file_exists($this->_get('photo')))
unlink($this->_get('photo'));
- Kaydederken Fotoğraflar yüklenenler / fotoğrafları saklanır ve '
Photo
' sadece dosya adıxxx-yyy.zzz
(tam yolunu değil) kaydedilir. Ancak, ben symfony / php silinecek dosyanın tam yolunu bilir nasıl bilmek ister misiniz?
Part 2:
I am using sfThumbnailPlugin
to generate thumbnails. So the actual code looks like this:
public function setPhoto($value)
{
if(!empty($value))
{
Contact::generateThumbnail($value); // delete current Photo & create thumbnail
$this->_set('photo',$value); // setting new value after deleting old one
}
}
public function generateThumbnail($value)
{
$uploadDir = sfConfig::get('app_photo_upload'); // path to upload folder
if (file_exists($this->_get('photo')))
{
unlink($this->_get('photo')); // delete full-size image
// path to thumbnail
$thumbpath = $uploadDir.'/thumbnails/'.$this->get('photo');
// read a blog, tried setting dir manually, doesn't work :(
//chdir('/thumbnails/');
// tried closing the file too, doesn't work! :(
//fclose($thumbpath) or die("can't close file");
//unlink($this->_get('photo')); // doesn't work; no error :(
unlink($thumbpath); // doesn't work, no error :(
}
$thumbnail = new sfThumbnail(150, 150);
$thumbnail->loadFile($uploadDir.'/'.$value);
$thumbnail->save($uploadDir.'/thumbnails/'.$value, 'image/png');
}
- Why can't the thumbnail be deleted using unlink()? is the sequence of ops incorrect?
Is it because the old thumbnail is displayed in the
sfWidgetFormInputFileEditable
widget?
I've spent hours trying to figure this out, but unable to nail down the real cause. Thanks in advance.