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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
怎样搭建PHP开发环境
Jul 28 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
php加密解密字符串示例
Oct 13 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
PHP中多字节字符串操作实例详解
Aug 23 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
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python实现SMTP邮件发送
2020/06/16 Python
私有程序集与共享程序集有什么区别
2013/04/05 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
反邪教标语
2014/06/23 职场文书
物业消防安全责任书
2014/07/23 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
实习生辞职信范文
2015/03/02 职场文书
预备党员半年考察意见
2015/06/01 职场文书
团委副书记工作总结
2015/08/14 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技