4

可能重复:
如何使用 PHP 和 GD 获取图像资源大小(以字节为单位)?

是否可以使用 php 获取对象 $image 的文件大小(不是图像大小尺寸)?我想将此添加到我的“Content-Length:”标题中。

$image = imagecreatefromjpeg($reqFilename);
4

2 回答 2

3

您可以为此使用filesize()

 // returns the size in bytes of the file
 $size = filesize($reqFilename);

当然,只有在调整大小的图像是存储在磁盘上的图像时,如果您在调用后调整图像大小,则上述内容当然有效,imagecreatefromjpeg()那么您应该使用@One Trick Ponys 解决方案并执行以下操作:

  // load original image
  $image = imagecreatefromjpeg($filename);
  // resize image
  $new_image = imagecreatetruecolor($new_width, $new_height);
  imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  // get size of resized image
  ob_start();
  // put output for image in buffer
  imagejpeg($new_image);
  // get size of output
  $size = ob_get_length();
  // set correct header
  header("Content-Length: " . $size);
  // flush the buffer, actually send the output to the browser
  ob_end_flush();
  // destroy resources
  imagedestroy($new_image);
  imagedestroy($image);
于 2013-01-31T23:13:07.683 回答
3

我认为这应该有效:

$img = imagecreatefromjpeg($reqFilename);

// capture output
ob_start();

// send image to the output buffer
imagejpeg($img);

// get the size of the o.b. and set your header
$size = ob_get_length();
header("Content-Length: " . $size);

// send it to the screen
ob_end_flush();
于 2013-01-31T23:19:26.637 回答