1、创建数据表

 
CREATE TABLE image(
id int(4) unsigned NOT NULL AUTO_INCREMENT,
name varchar(100) default NULL,
path varchar(100) default NULL,
time timestamp default CURRENT_TIMESTAMP,
PRIMARY KEY(id)
)engine=myisam DEFAULT charset=utf8
2、新建一个uploads文件夹
uploads文件夹下面新建一个images文件夹(用来存放上传后的图片的文件夹)
,创建index.php(用于点击选择文件后提交的页面),upimage.php(实现图片上传的代码存放),getimage.php(实现图片显示的代码存放)

3、用于点击选择文件后提交页面的index.php

 
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>图片上传和下载</title>
</head>
<body>
<center>
<h2>文件上传</h2>
<!-- 文件上传得form表单 -->
<form action="upimage.php" method="post" enctype="multipart/form-data">
上传图片:
<input type="file" name="pic">
<input type="submit" value="上传">
</form>
</center>
</body>
</html>

4、实现图片上传的代码存放   upimage.php

 
<?php
//1.获取上传文件信息
$upfile=$_FILES["pic"];
//定义允许的类型
$typelist=array("image/jpeg","image/jpg","image/png","image/gif");
$path="./images/";//定义一个上传后的目录
//2.过滤上传文件的错误号
if($upfile["error"]>0){
switch($upfile['error']){//获取错误信息
case 1:
$info="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值.";
break;
case 2:
$info="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值.";
break;
case 3:
$info="文件只有部分被上传";
break;
case 4:
$info="没有文件被上传.";
break;
case 5:
$info="找不到临时文件夹.";
break;
case 6:
$info="文件写入失败!";break;
}die("上传文件错误,原因:".$info);
}
//3.本次上传文件大小的过滤(自己选择)
if($upfile['size']>100000){
die("上传文件大小超出限制");
}
//4.类型过滤
if(!in_array($upfile["type"],$typelist)){
die("上传文件类型非法!".$upfile["type"]);
}
//5.上传后的文件名定义(随机获取一个文件名)
$fileinfo=pathinfo($upfile["name"]);//解析上传文件名字
do{
$newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];
}while(file_exists($path.$newfile));
//6.执行文件上传
//判断是否是一个上传的文件
if(is_uploaded_file($upfile["tmp_name"])){
//执行文件上传(移动上传文件)
if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){
echo "文件上传成功!"; //将文件名和路径存储到数据库
$dbms = 'mysql'; //数据库类型
$host = 'localhost'; //数据库主机名
$dbName = 'smart_lock'; // 使用的数据库
$user = 'root'; //数据库连接用户名
$pass = '123456'; //对应的密码
$dsn ="mysql:host = $host;dbname=$dbName";
$pdo = new PDO($dsn,$user,$pass);
$data = addslashes(fread(fopen($pic,"r"),filesize($pic)));
//将图片的名称和路径存入数据库
$query = "INSERT INTO image(name,path)VALUES('$newfile','$path$newfile')";
$result = $pdo -> query($query); if($result){
echo"文件已存储到数据库";
}
else{
echo"请求失败,请重试";
}
}else{
die("上传文件失败!");
}
}else{
die("不是一个上传文件!");
}
?>

5、实现图片显示的getimage.php

 
<?php
//$id = isset($_GET['id'])?intval($_GET['id']):1;
//$id = $_GET['id'];
$id = 2; //id正常应该是通过用户填入的id获取(客户端发送过来的查询数据id)
$dbms = 'mysql'; //数据库类型
$host = 'localhost'; //数据库主机名
$dbName = 'smart_lock'; // 使用的数据库
$user = 'root'; //数据库连接用户名
$pass = '123456'; //对应的密码 $dsn = "mysql:host = $host;dbname=$dbName";
$pdo = new PDO($dsn,$user,$pass);
$query = "select name,path from image where id=$id"; //数据查询
$result = $pdo->query($query);
if($result){
$result = $result->fetchAll(2);
echo "<img src=".$result[0]['path'].">";
// $path="./uploads/";//定义一个上传后的目录
// echo "<img src=$path".$result[0]['name'].">";
}
else{
echo "Handle errors";
}
?>
 
转载自:https://segmentfault.com/a/1190000015750653

PHP上传图片,路径保存在数据库中,根据图片路径显示图片的更多相关文章

  1. Express+MySQL实现图片上传到服务器并把路径保存到数据库中

    demo准备:mysql5.7.20 express4.0 处理图片文件的中间件Multer 先搭建服务器并展示html页面 const express = require("express ...

  2. thinkphp表单上传文件并将文件路径保存到数据库中

    上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` (  `id` int(11) ...

  3. logback.xml的使用,将日志异步保存到数据库中

    想要把日志异步保存到数据库中,首先需要创建一个数据库,然后创建三张固定的表: https://github.com/xiaorenwu-dashijie/logback.git <?xml ve ...

  4. Java中将图片保存到数据库中

    在实际的开发中,我们可能需要将图片.影音等文件直接保存到数据库中,然后通过编程方式将数据读出进行使用.例如将读出的图片数据显示出来,将读出的电影文件播放出来. 二进制数据直接保存到文件和从文件中读出非 ...

  5. 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word

    效果: 1. . . 数据库: 思路: 上传:先获取word物理地址,然后根据文件的类型判断,然后再保存到相应的文件夹下,再把路径插入到数据库中. 读取:首先根据输入的文件名字在数据库中查找出来文件的 ...

  6. XAF:如何让用户在运行时个性化界面并将个性化信息保存到数据库中 win/web/entityframework/xpo

    本主题介绍如何启用管理模型差异(XAFML),并将设置存储在数据库中.   名词解释: 1.模型:XAF中把所有应用程序的结构都用模型来定义,比如列表,有哪些列,名称是什么,对应的字段名是什么,业务对 ...

  7. ASP.NET将Session保存到数据库中

    因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的 ...

  8. JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中

    本文属于原创,转载请标明出处! 近期在做项目时,要实现通过双击Table表格的TR,使Table行变成可编辑,来实现修改数据并保存到数据库中的功能,无需多说,直接贴代码吧.希望能得到各位同仁指正. f ...

  9. 把MP3保存到数据库中

    使用JdbcUtils得到连接con java.sql包下的Interface Blob----其实现类SerialBlob Blob是一个可以存储二进制文件的容器. BLOB常常是数据库中用来存储二 ...

随机推荐

  1. 厉害了!SpringBoot是如何动起来的!

    程序入口 SpringApplication.run(BeautyApplication.class, args); 执行此方法来加载整个SpringBoot的环境. 1. 从哪儿开始? Spring ...

  2. C# 篇基础知识11——泛型和集合

    .NET提供了一级功能强大的集合类,实现了多种不同类型的集合,可以根据实际用途选择恰当的集合类型. 除了数组 Array 类定义在System 命名空间中外,其他的集合类都定义在System.Coll ...

  3. Redis集合类型

    集合是元素无序且唯一的列表 命令 增加元素 SADD key member [member ...] > SADD letters a (integer) 1 > SADD letters ...

  4. 【LOJ2127】「HAOI2015」按位或

    题意 刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作.选择数字 \(i\) 的概率是 \(p[i]\) . 问期望多少秒后,你手 ...

  5. what to do in next ten years

    除了深造编程功力,还要有: 烹饪(川菜湘菜,药膳) 吉他 摄影 四书五经,诗词经典 毛笔字书法 可报班,可搜教程自学

  6. ElasticSearch入门了解

    什么是Elasticsearch: Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 1.什么是搜索? 搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索 ...

  7. 学习进度-10 python爬虫

    学习爬虫的第一个案例是小说爬虫. 小说爬虫首先是解析小说页面源代码,在页面源代码中可以看到小说每章节的内容链接 爬虫的代码: import requests import re url = 'http ...

  8. An attempt was made to call the method com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder; but it does not exist. Its class, com.google.gson.GsonBuilder, is available from the foll

    SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/G:/sharp/repo ...

  9. C#遍历DataSet

    ] foreach (DataRow dr in dt.Rows) ///遍历所有的行 foreach (DataColumn dc in dt.Columns) //遍历所有的列 Console.W ...

  10. 1、MYSQL 数据库的安装与配置

    安装 1.打开官网https://www.mysql.com,选择社区版本   2.如图点击下在安装(本人在下载过程中亲身感觉下载时间非常漫长,需要等待,不知道为啥会有限速,可以参考网上教程用迅雷进行 ...