我正在尝试将图像发送到客户端,如下所示:
public function saveAction()
{
if(!isset($_SESSION)) session_start();
if(isset($_SESSION['id'])) {
$em = $this->getDoctrine()->getEntityManager();
$image = $em->getRepository('AcmeHomeBundle:Image')->find($_SESSION['id']);
// open the file in a binary mode
$fpass = fopen($image->getPath(), 'rb');
header("Content-Type: image/".$image->getFormat());
header("Content-Length: ".$image->getSize());
header('Content-Disposition: attachment; filename="image.'.$image->getFormat().'"');
// dump the picture and stop the script
fpassthru($fpass);
exit;
}
}
但有时会裁剪发送的图像。但是,原始图像是正确的。有什么可能出错的建议吗?
以下是一个例子:
原始图片:
已发送图片:
答案 0 :(得分:1)
似乎图片只下载了一半或半发送
看看内容大小是不是太小了?检查fpassthru的输出是否与图像大小匹配?检查日志中与时间或内存有关的错误