你好,我遇到php读取sql server中image类型的图片数据的问题,现在想把数据库中的图片信息保存成文件

作者&投稿:苑将 (若有异议请与网页底部的电邮联系)
用php将sqlserver中的二进制流字段(类型为image)读取出来显示的是“?”是什么原因?~

检查下 数据库的编码和显示时候的编码,一般出现乱码都是编码的问题,建议重新设置下编码

先从文件中读取二进制数据$fp = fopen($filename,"rb");
,然后插入进去,看下

  
// 定义上传目录
$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
// 创建目录
if(!is_dir($upload_dir))mkdir($upload_dir);

// 二进制数据 $picture
$image_type = image_type_to_mime_type($picture));
// 取得图片类型
$temp = explode('/', $image_type);

// 文件名
$uuid = rand(0,100).strtotime('+1 day');
$name = $uuid.$temp[1];
$path = $upload_dir.$name;

// 打开文件准备写入
$file = fopen($path, 'w');
// 写入
fwrite($file, $picture);
//关闭
fclose($file);

sqlserver image类型存入的实际上是16进制数据 因此需要读取三原色 拼成图片

$face_data = "0xD174B8007795CC........";//数据库存储数据
$size = 0;
$im = imagecreatetruecolor(48, 48);
for ($y = 0; $y < 48; $y++) {
for ($x = 0; $x < 48; $x++) {
$hex = substr($face_data, ($size++)*4, 3);

$red = substr($hex,2,1);
$green = substr($hex,1,1);
$blue = substr($hex,0,1);

$color = imagecolorallocate($im, ord($red), ord($green), ord($blue));
imagesetpixel($im, $x, $y, $color);
}
}

header('Content-type: image/jpeg');
$big_img = imagecreatetruecolor(96, 96);
imagecopyresampled($big_img, $im,0, 0, 0, 0, 96,96, 48, 48);
imagejpeg($big_img);
imagedestroy($big_img);
imagedestroy($im);

你把图片路径存起来不就好了吗


你好,我遇到php读取sql server中image类型的图片数据的问题,现在想把数...
\/\/ 定义上传目录 upload_dir = $_SERVER['DOCUMENT_ROOT'].'\/upload\/';\/\/ 创建目录 if(!is_dir($upload_dir))mkdir($upload_dir);\/\/ 二进制数据 $picture image_type = image_type_to_mime_type($picture));\/\/ 取得图片类型 temp = explode('\/', $image_type);\/\/ 文件名 uuid =...

我要用php读取桌面上一个aaa.txt文件的内容,看似很简单,希望大神把代 ...
醉了,,,兄弟PHP语言不能操作客户端机器的,,,当然读取不到桌面的文件,要是能操纵的话,是不是就可以直接格式化你的C盘,或者读取你电脑中的任何一个文件了,,,是不是,,,所以不在网站根目录下的话,就不能读取的,,,希望对你有帮助,,求采纳,,,...

高手帮我解决下PHP读取Excel文件乱码的问题
PHP中显示EXCEL需要使用一些插件,或者使用COM打开EXCEL进程。更简单的办法是在EXCEL里面另存为,选择网页格式,这样的文件可以直接在网页显示。

我遇到了在表单里面点击提交,但是php没有被执行, 反而php脚本出现...
如果PHP脚本没有被执行,反而看到了脚本的源代码,那么,原因只有一个:PHP脚本没有经过服务器解析。造成这个现象的原因,据我的经验:1.服务器端没有正确建立对PHP文件的解析。2.你的PHP脚本文件的扩展名设置不正确,通常php脚本文件以.php、.php5等做为解析扩展名,如果没有在服务器端正确设置与php...

有没有人知道PHP学习后就业前景好不好,我没有基础可以自学吗?_百度...
二是我本来觉得这一切都了解才是完整的。我们的目标也是要把这些都做好,这才是一个合格的PHP程序员。6、这一切都顺利的话,你基本离预设的目标不远了,完成了整个学习的70%了。后面的是在之前的基础上升华。把HTML和css、js结合、静态文件和PHP结合、PHP和MySQL结合。这个阶段可能越到的问题会异常...

php 里面读取 目录的 scandir 为什么老是读取不了我的目录(lnmp) <...
目测一下程序没有写错,如果读不出来,那肯定是scandir(".\/view");函数内的目录写错了 .\/ 代表是当前目录,你可以这样试试 view 或者 view\/ 或者 .\/view\/ 再不行,你可以试试全路径的写法 比如 ‘\/opt\/www\/view\/’ 先试试再说 ...

求助:我使用编辑器存储数据,但是前台php读取出来时连存入的html代码都显...
应该是你在输出存入的html代码是使用了html转义函数htmlspecialchars 如何你要直接在页面中输出解析的效果就不要用转义 如果你要将代码传给在线编辑器就需要使用转义

php 如何实现从数据库中读出的信息在指定的网页指定的位置输出 php代码...
网页使用PHP格式,然后在html代码中需要显示数据的位置直接插入读取数据库内容并且显示的代码就行了

很多人都在反映,PHP现在很难找到工作,真的是这样吗?
“php是世界上最好的语言”,这一句常挂程序员嘴边的赞美,我觉得更多的是对php没落的嘲讽,但也不比较真,顺应技术发展的潮流学习新知识,才是正确的选择。很高兴收到邀请,我谈谈个人的看法。主要分为2点。一、PHP语言在国内的使用情况 国内的大厂普遍使用Java开发比较多一点,而这点PHP就有点小众了...

PHP好学吗?
我认为php难不难学和php多久学会是一个共性问题,所以我们首先来总结下有那么几种情况。好的情况:1、不排除有的人有天赋、智商高脑仁大。上手很快,这个和脑仁中的Z字回形沟有关。不过大部分人的脑仁都是差不多分量的。2、不排除有的人具备疯狗般的疯狂学习精神。这种人从上手到提升周期也很短。3...

小金县18992048073: 用php获取sqlserver的表数据,读取一部分就停止读取了 -
法俗青维: 大概是 odbc_exec 的兼容性问题 , 我使用 mysqli 局没有这个现象 以前用adodb 也处理过 30万以上的记录..<?php require_once('php/json/mysqli_dbset.php');/* $valstr=""; for ( $i=1;$i<120000;$i++){ $valstr.="(0,'name".$i."'),"; }$valstr.="(...

小金县18992048073: PHP如何读取MySQL数据? -
法俗青维: PHP读取MySQL数据有如下方法:方法一:$rs = mysql_query($q, $dbh); while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] "; /* id和name可以换位置 */ @mysql_close($dbh); /* 关闭到mysql数据库的连接 */ ?> 方法二:$rs = ...

小金县18992048073: php怎么读取mysql -
法俗青维: 大概的基本流程如下:连接数据库,再加一个判断.选择数据库 读取表 输出表中数据 下面是代码:<?php$con = mysql_connect("localhost","root","abc123");/* localhost 是服务器 root 是用户名 abc123 是密码*/ if (!$con) { die("数据库服...

小金县18992048073: php 访问 sqlserver 出错 -
法俗青维: 个人认为php不适合和SQL Server一起使用,目前来看相关帮助文档比较少,还有BUG也比较多,建议还是用php+MySQL的组合吧,数据库之间差异不会很大的,或者Tomcat+SQL Server,使用jdbc驱动,我以前遇到过这个问题一直没解决,最后是不了了之.

小金县18992048073: 我的php和sql连接时候总是不能把数据库的数据读取到 后台不能更新数据 -
法俗青维: 代码大大的问题 .先不说问题建议你换成PDO或者Mysqli,因为你用的在以后的php版本中已经移除.下面说问题.insert into mysql_query返回的是true 或者false,而你用的是mysql_num_rows从数据资源中获取条数.true 和false怎么获取?这里就出现了问题.所以说这里不报错吗?

小金县18992048073: PHP 乱序不重复读取SQL全部行
法俗青维: 先把从SQL读出来的数据,放到数组$arr里面.然后就可以用shuffle($arr) 打乱里面的元素,最后显示出来就行了!!

小金县18992048073: php顺序读取文件 -
法俗青维: $dir = opendir("../demo");$conn=mysql_connect('localhost','root','1'); mysql_select_db('test',$conn); while (($file = readdir($dir)) !== false) { if($file!='.' && $file!='..'){ $f=fopen($file,'r'); $f=fread($f,filesize($file)); mysql_query('INSET INTO con(wenben) VALUES($f)');} } closedir($dir);

小金县18992048073: php+mysql如何读取数据库数据? -
法俗青维: 先配置数据库------连接数据库--------选择数据库--------填写检索表-------输出检索内容 第一种解决方法:一、配置一下数据库:define("DB_HOST","localhost");//数据库地址,一般为localhost define("DB_USER","root");//数据库用户名 ...

小金县18992048073: PHP怎么读取我的sql数据库全部数据 我的表名是:zc - message 请问我这样写是否正确? -
法俗青维: 常识性错误 mysql_query是读取数据库中的数据到记录集,返回值不能直接输出,必须要用mysql_fetch_array($db)读取一行到一个数组中,之后再输出这个数组中的值,mysql_fetch_array读取记录集中的一行,并将这一行中每列的数据存储到一个一维数组中,读取成功后,指针指向记录集的下一行,所以,这时候继续用mysql_fetch_array就是读取下一行数据到数组中,因此,mysql_fetch_array通常是循环使用,while($row=mysql_fetch_array($db)) { echo $row['表中列1的键名']; echo $row['表中列2的键名']; }这样输出全部数据

小金县18992048073: php 怎么读取mysql一条数据并输出某一字段 -
法俗青维: 可以参考下面的代码://连接数据库服务器$link = mysql_connect('host(服务器ip地址,本地用localhost)','数据库账户','数据库密码');//选择要连接的数据库 mysql_select_db('数据库名字');//执行查询,返回数据源$query = mysql_query...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网