php上传图片到指定位置路径保存到数据库的具体实现


Posted in PHP onDecember 30, 2013

1.conn.php

<? 
$host="localhost"; //数据库服务器名称 
$user="root"; //用户名 
$pwd="1721"; //密码 
$conn=mysql_connect($host,$user,$pwd); 
mysql_query("SET 
character_set_connection=gb2312, 
character_set_results=gb2312, 
character_set_client=binary",$conn); if ($conn==FALSE) 
{ 
echo "<center>服务器连接失败!<br>请刷新后重试。</center>"; 
return true; 
} 
$databasename="database";//数据库名称 
do 
{ 
$con=mysql_select_db($databasename,$conn); 
}while(!$con); 
if ($con==FALSE) 
{ 
echo "<center>打开数据库失败!<br>请刷新后重试。</center>"; 
return true; 
} 
?>

2.upload.php
<?php 
if ($_GET['action'] == "save"){ 
include_once('conn.php'); 
include_once('uploadclass.php'); 
$title=$_POST['title']; 
$pic=$uploadfile; 
if($title == "") 
echo"<Script>window.alert('对不起!你输入的信息不完整!');history.back()</Script>"; 
$sql="insert into upload(title,pic) values('$title','$pic')"; 
$result=mysql_query($sql,$conn); 
//echo"<Script>window.alert('信息添加成功');location.href='upload.php'</Script>"; 
} 
?> 
<html> 
<head> 
<title>文件上传实例</title> 
</head> 
<body> 
<form method="post" action="?action=save" enctype="multipart/form-data"> 
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%"> 
<tr> 
<td width=55 height=20 align="center"> </TD> 
<td height="16"> <table width="48%" height="93" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td>标题:</td> 
<td><input name="title" type="text" id="title"></td> 
</tr> 
<tr> 
<td>文件: </td> 
<td><label> 
<input name="file" type="file" value="浏览" > 
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> 
</label></td> 
</tr> 
<tr> 
<td> </td> 
<td><input type="submit" value="上 传" name="upload"></td> 
</tr> 
</table></td> 
</tr> 
</table> 
</form> 
</body> 
</html>

3.uploadclass.php
<?php 
$uploaddir = "upfiles/";//设置文件保存目录 注意包含/ 
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型 
$patch="upload/";//程序所在路径 //获取文件后缀名函数 
function fileext($filename) 
{ 
return substr(strrchr($filename, '.'), 1); 
} 
//生成随机文件名函数 
function random($length) 
{ 
$hash = 'CR-'; 
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; 
$max = strlen($chars) - 1; 
mt_srand((double)microtime() * 1000000); 
for($i = 0; $i < $length; $i++) 
{ 
$hash .= $chars[mt_rand(0, $max)]; 
} 
return $hash; 
} 
$a=strtolower(fileext($_FILES['file']['name'])); 
//判断文件类型 
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type)) 
{ 
$text=implode(",",$type); 
echo "您只能上传以下类型文件: ",$text,"<br>"; 
} 
//生成目标文件的文件名 
else{ 
$filename=explode(".",$_FILES['file']['name']); 
do 
{ 
$filename[0]=random(10); //设置随机数长度 
$name=implode(".",$filename); 
//$name1=$name.".Mcncc"; 
$uploadfile=$uploaddir.$name; 
} 
while(file_exists($uploadfile)); 
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) 
{ 
if(is_uploaded_file($_FILES['file']['tmp_name'])) 
{ 
echo "上传失败!"; 
} 
else 
{//输出图片预览 
echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>"; 
echo "<br><center><a href='upload.htm'>继续上传</a></center>"; 
} 
} 
} 
?>

4.数据库文件
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2009 年 07 月 30 日 21:43
-- 服务器版本: 5.0.11
-- PHP 版本: 5.1.1
--
-- 数据库: `database`
--

-- --------------------------------------------------------

--
-- 表的结构 `news`
--

CREATE TABLE `news` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(50) NOT NULL,
`content` varchar(50) NOT NULL,
`path` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=8 ;

--
-- 导出表中的数据 `news`
--

INSERT INTO `news` (`id`, `title`, `content`, `path`) VALUES
(1, 'ag ', 'ag ', '1.html'),
(2, '你好2', '你好,新闻内容2', '2.html'),
(3, '', '', '3.html'),
(4, 'ga ', 'ag ', '4.html'),
(5, 'ag ', 'ag ', '1.html'),
(6, 'ag ', 'ag ', '2.html'),
(7, 'ag ', 'ag ', '3.html');

-- --------------------------------------------------------

--
-- 表的结构 `upload`
--

CREATE TABLE `upload` (
`uploadid` int(11) unsigned NOT NULL auto_increment,
`title` varchar(50) NOT NULL,
`pic` varchar(50) NOT NULL,
PRIMARY KEY (`uploadid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=10 ;

--
-- 导出表中的数据 `upload`
--

INSERT INTO `upload` (`uploadid`, `title`, `pic`) VALUES
(1, 'ga ', 'upfiles/CR-xpvDk12dsI.jpg'),
(2, 'ga ', 'upfiles/CR-HkC6fBfAtW.jpg'),
(3, '你好', 'upfiles/CR-E8Ohxk6KxB.jpg'),
(4, '', ''),
(5, '', ''),
(6, '', 'upfiles/CR-92xaug6jhu.jpg'),
(7, '', 'upfiles/CR-a7niAZlhfW.jpg'),
(8, '帅哥', 'upfiles/CR-v9Ary46JoS.jpg'),
(9, '爱国', 'upfiles/CR-XyaJEndF1K.jpg');

PHP 相关文章推荐
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php绘制圆形的方法
Jan 24 PHP
Laravel 5 学习笔记
Mar 06 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
PHP 类与构造函数解析
Feb 06 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 #PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 #PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 #PHP
微信扫描二维码登录网站代码示例
Dec 30 #PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 #PHP
一个好用的PHP验证码类实例分享
Dec 27 #PHP
PHP连接SQLServer2005方法及代码
Dec 26 #PHP
You might like
如何选购合适的收音机
2021/03/01 无线电
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
详解Python中的日志模块logging
2015/06/19 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
关于赌博的检讨书
2014/01/24 职场文书
建议书格式
2015/02/04 职场文书
机器人总动员观后感
2015/06/09 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
python如何将mat文件转为png
2022/07/15 Python