<tr>
<td width="15%">选择图片地址:</td>
<td width="85%"><input type="file" name="myphoto"/></td>
</tr>
我可以上传图片,可修改就成了问题,因为图片是以二进制流blob的形式储存到数据库中,所以不知道怎么读到这个地址,就是在我修改了图片名字没修改地址时,存在数据库中的图片地址不变
<td width="15%">选择图片地址:</td>
<td width="85%"><input type="file" name="myphoto"/></td>
</tr>
我可以上传图片,可修改就成了问题,因为图片是以二进制流blob的形式储存到数据库中,所以不知道怎么读到这个地址,就是在我修改了图片名字没修改地址时,存在数据库中的图片地址不变
解决方案 »
- url目录结构重写
- 急求解决php,js
- mysql如何实现中文的全文检索
- 关于 javascript editor 无法将数据发送到新的页面
- 大虾来帮忙啊,,linux 端口的疑问?
- php 做 二代身份证读卡器的二次开发
- DZ uc_user_synlogin加载源代码失败missing ; before statement Authracation has expiried
- 这段内容用正则怎么去替换所有的图片地址
- Yii使用swfupload多图片上传,如何一个页面中间使用多个swfupload?
- discuz论坛第二次开发
- 安装配置Apache2.0.59+PHP5.1.6出现问题
- 安装zend studio所需硬件配置
$fp = fopen($img_file, 'rb');
$content = fread($fp, filesize($img_file)); //二进制数据
fclose($fp);查询 显示:
<?php
header("content-type:image/jpeg");
list($st1,$st2)=explode(" ",microtime());
$startTime=$st1+$st2;
//$picContent=file_get_contents("1.jpg");
$lnk=mysql_connect("localhost","root","123456");
mysql_select_db("test");
//$picContents=base64_encode($picContent);
//$re=mysql_query("insert into pic values(NULL,'$picContents')");
$re=mysql_query("select * from pic");
!$re && die("查询失败!~");
$rs=mysql_fetch_array($re);
mysql_close($lnk);
echo base64_decode($rs['pic']);
list($st1,$st2)=explode(" ",microtime());
$time2=$st1+$st2;
echo '执行时间'.($time2-$startTime);
?>
建议:将二进制数据先base64编码后,再加入数据库,不然一些特殊符号会导致插入不成功。
//由于上传过来的图片被保存在一个临时文件中,所以
//我们仅需要读取该文件就可以获取传过来的图片
$fp = fopen($_FILES["myFile"]["tmp_name"],"rb");
$buf = addslashes(fread($fp,$_FILES["myFile"]["size"]));
//创建一个PDO对象
$dbh = new PDO("mysql:host=localhost;port=
3306;dbname=myDatabase", "root", "verysecret");
//执行插入操作并将结果保存在一个变量中
$result = $dbh->query("INSERT INTO employees
(firstName,lastName,EmpType,age,picture) VALUES
('myFirst','myLast','myEmpType',50,'$buf')");
//获取影响的行数
if ($result->rowCount() >0) {
echo("数据已插入。");
} else {
echo("不能执行插入操作。");
}
//显式的关闭PDO连接
$dbh = NULL;
?>