Don't use move_uploaded_file here. I'm not sure what the system will do in consideration to the is_uploaded_file. I would presume no matter what you do, it will not pass that check and therefore will not work in a move.
Verify your image first, and then simply save it to the location given that as the second paramter to the imagepng. $extension here is optional of course; the extension doesn't dictate the type, but if imagecreatefromjpeg fails, then the image isn't a valid jpeg image type. You can use that to your favour:
$sSavePath = '/path/to/where/you/save/file/';
$sFilename = pathinfo($_FILES['Filedata']['name'], PATHINFO_FILENAME);
if ($im = @imagecreatefromjpeg($_FILES['Filedata']['tmp_name']))
if (!imagepng($im, rtrim($sSavePath, '/') . '/' . $sFilename . '.png'))
sendError('Failed to save as PNG');
sendError('That is not a valid JPEG image');
That assumes you don't want to keep the JPEG as well.