0

我正在尝试像这样向客户端发送图像:

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;
    }
}

但有时会裁剪发送的图像。但是,原始图像是正确的。有什么可能出错的建议吗?

这是一个例子:

原图:

原来的

发送图片:

奇怪的裁剪图像

4

1 回答 1

1

好像图片只下载了一半或发送了一半

看看内容大小是不是太小了?检查 fpassthru 的输出是否与图像大小匹配?

检查日志中没有与时间或内存有关的错误

于 2013-10-19T10:37:15.547 回答