Delete file on class destruction or we do it too quickly
Source image was removed when trying to use it for resizeTo
This commit is contained in:
parent
fc440ba7e7
commit
e8e996182f
@ -120,6 +120,14 @@ class ImageFile
|
||||
Event::handle('FillImageFileMetadata', array($this));
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
if (strlen($this->filepath) > 0 && (!$this->fileRecord instanceof File || $this->filepath !== $this->fileRecord->getPath())) {
|
||||
common_debug(__METHOD__.': Deleting temporary file that was created as image file thumbnail source: '._ve($this->filepath));
|
||||
@unlink($this->filepath);
|
||||
}
|
||||
}
|
||||
|
||||
public static function fromFileObject(File $file)
|
||||
{
|
||||
$imgPath = null;
|
||||
@ -152,9 +160,6 @@ class ImageFile
|
||||
try {
|
||||
$image = new ImageFile($file->getID(), $imgPath);
|
||||
} catch (Exception $e) {
|
||||
common_debug(sprintf('Exception caught when creating ImageFile for File id==%s and imgPath==', _ve($file->id), _ve($imgPath)));
|
||||
throw $e;
|
||||
} finally {
|
||||
// Avoid deleting the original
|
||||
try {
|
||||
if (strlen($imgPath) > 0 && $imgPath !== $file->getPath()) {
|
||||
@ -166,6 +171,8 @@ class ImageFile
|
||||
// doesn't exist anyway, so it's safe to delete $imgPath
|
||||
@unlink($imgPath);
|
||||
}
|
||||
common_debug(sprintf('Exception caught when creating ImageFile for File id==%s and imgPath==', _ve($file->id), _ve($imgPath)));
|
||||
throw $e;
|
||||
}
|
||||
return $image;
|
||||
}
|
||||
@ -587,7 +594,7 @@ class ImageFile
|
||||
list($width, $height, $x, $y, $w, $h) = $this->scaleToFit($width, $height, $crop);
|
||||
|
||||
$thumb = File_thumbnail::pkeyGet(array(
|
||||
'file_id'=> $this->fileRecord->id,
|
||||
'file_id'=> $this->fileRecord->getID(),
|
||||
'width' => $width,
|
||||
'height' => $height,
|
||||
));
|
||||
@ -597,7 +604,7 @@ class ImageFile
|
||||
|
||||
$filename = $this->fileRecord->filehash ?: $this->filename; // Remote files don't have $this->filehash
|
||||
$extension = File::guessMimeExtension($this->mimetype);
|
||||
$outname = "thumb-{$this->fileRecord->id}-{$width}x{$height}-{$filename}." . $extension;
|
||||
$outname = "thumb-{$this->fileRecord->getID()}-{$width}x{$height}-{$filename}." . $extension;
|
||||
$outpath = File_thumbnail::path($outname);
|
||||
|
||||
// The boundary box for our resizing
|
||||
@ -615,7 +622,7 @@ class ImageFile
|
||||
throw new ServerException('Bad thumbnail size parameters.');
|
||||
}
|
||||
|
||||
common_debug(sprintf('Generating a thumbnail of File id==%u of size %ux%u', $this->fileRecord->id, $width, $height));
|
||||
common_debug(sprintf('Generating a thumbnail of File id==%u of size %ux%u', $this->fileRecord->getID(), $width, $height));
|
||||
|
||||
// Perform resize and store into file
|
||||
$this->resizeTo($outpath, $box);
|
||||
|
Loading…
Reference in New Issue
Block a user