首页 / PHP / 修改上传图片?解决方案
修改上传图片?解决方案
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了修改上传图片?解决方案,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1874字,纯文字阅读大概需要3分钟。
内容图文
![修改上传图片?解决方案](/upload/InfoBanner/zyjiaocheng/212/ae94807378b34dd2b8495ebef7bd0dd0.jpg)
我可以上传图片,可修改就成了问题,因为图片是以二进制流blob的形式储存到数据库中,所以不知道怎么读到这个地址,就是在我修改了图片名字没修改地址时,存在数据库中的图片地址不变
------解决方案--------------------
图片转为二进制
$img_file = 'xxx.jpg';
$fp = fopen($img_file, 'rb');
$content = fread($fp, filesize($img_file)); //二进制数据
fclose($fp);
查询 显示:
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;
?>
------解决方案--------------------
存在数据库就跟平时修改文字一样做就可以...
当他是字串就可以了
------解决方案--------------------
header("content-type:image/jpeg"); 输出的前边加上这个
内容总结
以上是互联网集市为您收集整理的修改上传图片?解决方案全部内容,希望文章能够帮你解决修改上传图片?解决方案所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。