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仿ZOL分页类代码
Oct 02 PHP
php连接mysql数据库代码
Mar 10 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
php去掉文件前几行的方法
Jul 29 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
PHP实现简单登录界面
Oct 23 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
Zerg剧情介绍
2020/03/14 星际争霸
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
详解JavaScript中的构造器Constructor模式
2016/01/14 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
大学毕业生通用自荐信范文
2013/10/31 职场文书
最新创业融资计划书
2014/01/19 职场文书
自主招生自荐信指南
2014/02/04 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
小学生读书笔记范文
2015/06/30 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
教师教育教学随笔
2015/08/15 职场文书
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技