Remove temporary file after avatar upload failure. closes flarum/core#999

This commit is contained in:
Toby Zerner
2016-08-27 23:53:02 +09:30
parent 82be1cea5d
commit d5797dae79

View File

@ -10,6 +10,7 @@
namespace Flarum\Core\Command; namespace Flarum\Core\Command;
use Exception;
use Flarum\Core\Access\AssertPermissionTrait; use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\Core\Repository\UserRepository; use Flarum\Core\Repository\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait; use Flarum\Core\Support\DispatchEventsTrait;
@ -84,6 +85,7 @@ class UploadAvatarHandler
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'avatar'); $tmpFile = tempnam($this->app->storagePath().'/tmp', 'avatar');
$command->file->moveTo($tmpFile); $command->file->moveTo($tmpFile);
try {
$file = new UploadedFile( $file = new UploadedFile(
$tmpFile, $tmpFile,
$command->file->getClientFilename(), $command->file->getClientFilename(),
@ -125,5 +127,10 @@ class UploadAvatarHandler
$this->dispatchEventsFor($user, $actor); $this->dispatchEventsFor($user, $actor);
return $user; return $user;
} catch (Exception $e) {
@unlink($tmpFile);
throw $e;
}
} }
} }