php上传图片存入数据库示例分享


Posted in PHP onMarch 11, 2014

大部分人的图片上传都是保存一个路径到数据库,这样在插入时确实快,也符合web的特点,但是在删除时就很麻烦,需要找到文件并删除,该代码能够把代码直接存入数据库,删除时一并删除。请注意:这样的话数据库大小会激增,请酌情使用

表结构 

CREATE TABLE `upload` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(20) NOT NULL,
  `data` mediumblob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

index.html

<!doctype html>
    <html>
<head>
    <title>
        Post-Image
    </title>
</head>
<body>
<form action="post.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file"/>
    <input type="submit" value="OK"/>
</form>
</body>
</html>

post.php

<?php
if ($_FILES["file"]["error"] > 0)
{
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
    $type = $_FILES["file"]["type"];
    $size = $_FILES['file']['size'];
    $tmp=$_FILES["file"]["tmp_name"];
    $fp = fopen($tmp,'rb');
    $data = bin2hex(fread($fp,$size));
    $dsn='mysql:host=localhost;dbname=test';
    echo '<pre>';
    try{
        $pdo = new PDO($dsn,'root','root');
        $pdo->exec("INSERT INTO `upload`(`type`,`data`) values ('$type',0x$data)");
        $id = $pdo->lastInsertId();
        echo 'upload success!<a href="view.php?id='.$id.'">View</a>';
        $pdo = null;
    }catch (PDOException $e){
        echo $e->getMessage();
    }
    echo '</pre>';
    fclose($fp);
}

view.php

<?php
$id = $_GET['id'];
if(is_numeric($id)){
    $dsn='mysql:host=localhost;dbname=test';
    try{
        $pdo = new PDO($dsn,'root','root');
        $rs = $pdo->query('select * from `upload`  where `id`='.$id);
        $row = $rs->fetchAll();
        $data = $row[0];
        header("Content-Type:${data['type']}");
        echo $data['data'];
        $pdo = null;
    }catch (PDOException $e){
        echo $e->getMessage();
    }
}else{
    exit();
}
PHP 相关文章推荐
PHP 身份验证方面的函数
Oct 11 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
php中in_array函数用法分析
Nov 15 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
php实现根据身份证获取精准年龄
Feb 26 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 PHP
php使用反射插入对象示例分享
Mar 11 #PHP
php数组编码转换示例详解
Mar 11 #PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 #PHP
PHP输出缓存ob系列函数详解
Mar 11 #PHP
php初始化对象和析构函数的简单实例
Mar 11 #PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 #PHP
php调用c接口无错版介绍
Mar 11 #PHP
You might like
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
php 保留字列表
2012/10/04 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
师范生个人推荐信
2013/11/29 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
单位推荐信范文
2015/03/27 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫