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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
第九节--绑定
Nov 16 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
php向js函数传参的几种方法
Aug 10 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 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进行MySQL删除记录操作代码
2008/06/07 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
js单例模式的两种方案
2013/10/22 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
jquery获取下拉框中的循环值
2017/02/08 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python pass详细介绍及实例代码
2016/11/24 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Python类的继承用法示例
2019/01/31 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python hough变换检测直线的实现方法
2019/07/12 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
2014教师党员自我评议(5篇)
2014/09/20 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书