如何在php中检索blob文件到图像?

时间:2014-09-18 01:09:01

标签: php image blob

我正在使用plupload在我的基于php的网站上传文件,大文件上传文件就变成了一个名为' blob'没有任何后缀。我知道这是一个包含原始数据的二进制文件,问题是如何检索数据并将其保存为图像文件,比如.png / .jpg等?我试过了:

$imageString = file_get_contents($blogPath);
$image = imagecreatefromstring($imageString);

但它给了我一些'数据不是公认的格式......'错误,有什么想法?提前谢谢。

3 个答案:

答案 0 :(得分:1)

如果imagecreatefromstring()正在运行,您对file_get_contents()的通话应该会正常运作。使用var_dump($imageString)进行验证。您的意思是将变量命名为$blobPath而不是$blogPath

您不需要加载此图片。只需重命名该文件。

rename($blobPath, 'new/path/here.jpg');

http://php.net/manual/en/function.rename.php

答案 1 :(得分:1)

我正在存储上传的图像文件以供日后使用,例如将它们附加到帖子或产品(我的网站是电子商务CMS)。我认为我的图像文件没有完全上传到服务器,上传前的图像是6mb,但blob文件只有192kb,所以我最好的猜测是上传的只是一块而不是整块包,但这提出了另一个问题:我应该如何把所有的部分组装成一个完整的图像文件?如前所述,我使用plupload for js plugin和php作为后端,处理上传的后端php代码如下:

move_uploaded_file($_FILES["file"]["tmp_name"], $uploadFolder . $_FILES["file"]["name"]);

答案 2 :(得分:-1)

而不是这样做,你应该这样做,以显示图像到浏览器

 <img src="data:image/jpeg;base64,'.base64_encode( $row['blob_image'] ).'"/>

我不确定imagecreatefromsting是做什么或者它如何编码图像。

我查看了该功能的文档;你错过了:

$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';

$data = base64_decode($data); <--- this operation