在上传流中使用时确定imagepng的文件大小

时间:2016-12-28 11:13:00

标签: php

我正在创建一个png并立即上传到S3,我想记录该文件的大小,而不必单独调用S3上的同一文件来计算磁盘上的大小。

这可能吗?

$tile = imagecreatetruecolor($tileImageSize, $tileImageSize);

imagecopy($tile, $resizedMainImage, 0, 0, $currentCoordsX, $currentCoordsY, $tileSize, $tileSize);

$writeStream = fopen("s3://bucket/file.png", 'w');

imagepng($tile, $writeStream, 9); // need filesize of this action

我已经尝试将imagepng包裹在ob_start(); ob_get_length(); etc中而没有任何快乐。

1 个答案:

答案 0 :(得分:1)

问题是你需要将图像保存到某个地方以获得大小。为避免写入文件系统,可以使用php的内存存储。我的意思是这样的:

imagepng($tile, 'php://memory/image.png');
$file_size = filesize('php://memory/image.png');

您可以在将图像上传到服务器之前执行此操作,以获取日志信息。