问题在PHP从MySQL中检索图像

我上传图片到mysql数据库之前已经使用了下面的代码

编码之前,我也做

$content = addslashes($content); $content = base64_encode($content);

在那之后我已经测试数据库中它是进入精细图像。

但是,每当我尝试下载它保存很好的文件系统相同的图像,但从来没有让我查看。 至于,它给我的不正确的图像文件。 为什么会这样

$file_data= $this->get_attachment($id); $content = $file_data['content']; $content = stripslashes($content); $content = base64_decode(); header("Content-length: ". strlen($content)); header("Content-type: ".$file_data['filetype']); header("Content-Disposition: attachment; filename=".$file_data['filename']); echo $content;

紧急帮助将不胜感激。

--------------解决方案-------------

您发送的base64编码字符串的文件长度$file_data['content']相反,发送解码的长度$content

$content = base64_decode($file_data['content']);
// Send the Content-length of the decoded data $content
// Should work, since strlen() is binary safe
header("Content-length: ". strlen($content));

为什么会这样[?]

您存储一些数据到数据库中。 检索时,你没有得到原始数据备份。 这就是为什么。

是什么原因造成的? 可以有无数的事情,导致此。 从信息你已经在你的问题我只能猜测概述:

  • 给出错误的长度(在你的情况下,另存为进程可能会希望有更多的字节,然后发送和垫带空字节或别的深奥的文件)。
  • 错误的数据给出。 从数据库中检索到的数据可能不是原始数据不再由于截断,例如将数据存储到字段太小而无法保持所有的数据。

请仔细检查你的代码的编码/解码部分(测试一下吧!),并确保数据库列有一个合适的类型ADOCS以及存储数据。 比较原来的内容与你从数据库中检索长度的长度。 此外,您可以添加一个校验和(例如md5 ),为您的数据进行测试,如果它被改变与否。

分类:php 时间:2012-01-01 人气:30
本文关键词: 图像,PHP和MySQL
分享到:

相关文章

  • 如何将(​​JPEG)图像保存到MySql以后找回? 2013-03-28

    寻找一个代码示例,最好使用TADOConnection. 我要救一个的TImage到MySQL的TPicture(最好是ODBC,而不仅仅是MySQL的)数据库,后来我想箱子一个的TImage和检索图片的TPicture财产. 任何代码段,或链接一样的吗? --------------解决方案------------- 您可以使用BLOB字段. 假设你有TAdoDataset的一个实例,并要编辑的图像场. 您可以使用这样的代码: AStream := TMemoryStream.Create;

  • 使用Jquery API中插入图像值到MySQL数据库 2014-04-13

    我正在开发一个Facebook应用程序,我在哪里能够得到使用Facebook的API来Facebook的照片. 从所有的专辑,我选择特定的图像. 我能够从相册选择图像. 起初,我有一个div选定的图像默认. 当从我的Facebook相册,替换默认图像所取照片的特定图像上的点击. 我想这一点. 选择完毕后,当我去插入图像插入MySQL数据库托管服务器(而不是本地服务器上),我已经找到了图像大小被改变,因为当我下载所选图像尺寸,例如,如果它的大小为5KB,在服务器上数据库是9B! 这是相当惊人的!

  • 保存图像名称在mysql中? 2012-02-26

    目前,我有系统,我们做调整和创造需要尽可能多的图像,并将它们存储在Web服务器上的文件系统. 另外我做和MySQL的条目,图像基本名称的数据库. 比如我上传5张图像的基本部分是372FDSC然后它会增加_0,_1等每个图像文件系统,因此使图像看起来像372FDSC_0.jpeg等等. 那么,是我的问题吗? 这是我无法删除或上传新的​​图片,因为我不知道代码映像名称. 我奇怪的是有一些更好的解决方案,以节省图像名称文章? 如MySQL行持有的所有名称(372FDSC_0.jpgeg; 372FDS

  • PHP调整图像前保存到mysql数据库? 2012-04-07

    当我拿到后,如何调整到一个较小的宽度(最大宽度为80,最小也80),我应该检查安全的目的呢? 我当前的代码: if(!empty($_FILES)) { # Resize Image function $return=true; function resizeImage($originalImage,$toWidth,$toHeight){ // Get the original geometry and calculate scales list($width, $height) = geti

  • 正常图像储存或MySQL斑点? 2012-04-07

    我编程的PHP / MySQL的Web应用程序,它是有点像一个博客平台,人们可以上传图片和张贴. 什么是存储这些图像的最佳方式,通过BLOB在一个文件夹或MySQL表中存储呢? 我问这个,因为我想这让我轻松地移动到另一台主机/服务器,而无需花费几天下载所有发布的照片​​,并将其上传到新的服务器的最简单方法. 可选问题:一个专用的服务器够了就开始写博客平台? 谢谢 --------------解决方案------------- 从数据库中. 当它从数据库中您的网络服务器可以做自己的工作,使客户端缓

  • 显示与其他数据一起BLOB的图像PHP的MySQL 2012-05-13

    我有存储在一些数据MySQL数据库..我想显示存储的图像数据与在其他数据.php页.. 如果我从数据库中获取和使用数据的header("Content-type: image/jpeg");其不可能以示与其他PHP数据的图像..有AA其他办法吗? --------------解决方案------------- 阅读本:显示存储在MySQL的blob图像 如果设置页眉图像/ JPEG的处理您的整个页面为图像文件..你想要的数据被插入到只有图像持有人. 尝试这样的事情 <img al

  • 在文件夹中删除的图像不在一个MySQL数据库通过PHP上市 2012-05-15

    我的目的: 对未在MySQL数据库中列出的文件夹中删除图像. 我希望这能当我注销我的门户网站运行. 如何做到这一点任何想法? 谢谢 数据库 数据库名称:图像列表 id, image, thumbnail 1, image1.jpg, image1thumb.jpg 2, image2.jpg, image2thumb.jpg 3, image3.jpg, image3thumb.jpg 文件夹 文件夹名称:图片 image1.jpg image1thumb.jpg image2.jpg rand

  • 导入Excel文件与图像的PHP / MySQL的 2012-08-05

    我想打一个导入脚本,它允许用户将自己的Excel文件(扩展名并不重要)上传到我的PHP应用程序. 该应用程序应该reconize项目的列表(到目前为止好). 在这种情况下,难点在于,Excel文件包含图像... 我读过有关phpexcel库的信息,但它并没有说明图片什么. 任何人的想法? --------------解决方案------------- 您可以通过PHPExcel库访问图像. 对于导入图像: $objPHPExcel = PHPExcel_IOFactory::load("MyEx

  • 如何用struts 2从浏览器拍摄的图像存储到mysql数据库和休眠 2012-08-09

    您好我建立在欢迎页面有struts2的文件标记现在我想存储指定的文件到mysql数据库会有人帮我一个动态Web项目... 提前致谢. 下面是我公司开发的代码,但它需要的文件参数静态意味着我手动指定我路径. 但它应该从Struts 2文件标签看到Java类U将得到它的路径.. public class FileUploadACtion { public String execute() throws IOException { System.out.println("Hibernate save

  • 上传图片虽然PHP,图像保存路径到MySQL 2013-10-03

    当然这是一个轻松的一年为各位专家,我真的想上传到网站形象和路径保存到数据库中. 如果可能的话,我怎么能保存前改变图像大小? 这里是我的脚本处理更新时更新查询: <?php // Get Event ID $update=$_GET['update']; // Create Session $event_name=$_POST['event_name']; $event_description=$_POST['event_description']; $event_date=$_POST['eve

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.252 (s). 10 q(s)