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

2015-01-24信息快讯网

这篇文章主要介绍了php上传图片存入数据库示例,需要的朋友可以参考下

大部分人的图片上传都是保存一个路径到数据库,这样在插入时确实快,也符合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.ini的路径的方法
Linux下PHP连接Oracle数据库
Win7 64位系统下PHP连接Oracle数据库
对PHP新手的一些建议(PHP学习经验总结)
PHP中使用localhost连接Mysql不成功的解决方法
php上传图片之时间戳命名(保存路径)
Php连接及读取和写入mysql数据库的常用代码
php Imagick获取图片RGB颜色值
php中单个数据库字段多列显示(单字段分页、横向输出)
PHP实现多图片上传类实例
PHP判断文章里是否有图片的简单方法
codeigniter上传图片不能正确识别图片类型问题解决方法
2个Codeigniter文件批量上传控制器写法例子
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
kohana框架上传文件验证规则写法示例
php获取文件夹路径内的图片以及分页显示示例
php使用反射插入对象示例分享
php数组编码转换示例详解
使用Discuz关键词服务器实现PHP中文分词
PHP输出缓存ob系列函数详解
php初始化对象和析构函数的简单实例
Yii操作数据库的3种方法
php设置允许大文件上传示例代码
php如何解决无法上传大于8M的文件问题
PHP加Nginx实现动态裁剪图片方案
解决Codeigniter不能上传rar和zip压缩包问题
php 生成自动创建文件夹并上传文件的示例代码
php绘图中显示不出图片的原因及解决
thinkphp实现图片上传功能分享
Drupal7连接多个数据库及常见问题解决
Drupal读取Excel并导入数据库实例
Drupal7中常用的数据库操作实例
PHP批量上传图片的具体实现方法介绍.
php把session写入数据库示例
php图片缩放实现方法
©2014-2024 dbsqp.com