php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn)
更新時間:2013年12月30日 16:53:06 作者:
本文為大家介紹下php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn),感興趣的朋友不要錯過
1.conn.php
<?
$host="localhost"; //數(shù)據(jù)庫服務器名稱
$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";//數(shù)據(jù)庫名稱
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if ($con==FALSE)
{
echo "<center>打開數(shù)據(jù)庫失??!<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/";//程序所在路徑
//獲取文件后綴名函數(shù)
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成隨機文件名函數(shù)
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); //設置隨機數(shù)長度
$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>您的文件已經(jīng)上傳完畢 上傳圖片預覽: </center><br><center><img src='$uploadfile'></center>";
echo "<br><center><a href='upload.htm'>繼續(xù)上傳</a></center>";
}
}
}
?>
4.數(shù)據(jù)庫文件
-- 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
--
-- 數(shù)據(jù)庫: `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 ;
--
-- 導出表中的數(shù)據(jù) `news`
--
INSERT INTO `news` (`id`, `title`, `content`, `path`) VALUES
(1, 'ag ', 'ag ', '1.html'),
(2, '你好2', '你好,新聞內(nèi)容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 ;
--
-- 導出表中的數(shù)據(jù) `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');
復制代碼 代碼如下:
<?
$host="localhost"; //數(shù)據(jù)庫服務器名稱
$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";//數(shù)據(jù)庫名稱
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if ($con==FALSE)
{
echo "<center>打開數(shù)據(jù)庫失??!<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/";//程序所在路徑
//獲取文件后綴名函數(shù)
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成隨機文件名函數(shù)
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); //設置隨機數(shù)長度
$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>您的文件已經(jīng)上傳完畢 上傳圖片預覽: </center><br><center><img src='$uploadfile'></center>";
echo "<br><center><a href='upload.htm'>繼續(xù)上傳</a></center>";
}
}
}
?>
4.數(shù)據(jù)庫文件
-- 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
--
-- 數(shù)據(jù)庫: `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 ;
--
-- 導出表中的數(shù)據(jù) `news`
--
INSERT INTO `news` (`id`, `title`, `content`, `path`) VALUES
(1, 'ag ', 'ag ', '1.html'),
(2, '你好2', '你好,新聞內(nèi)容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 ;
--
-- 導出表中的數(shù)據(jù) `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/Javascript/CSS/jQuery常用知識大全詳細整理
PHP/Javascript/CSS/jQuery常用知識大全詳細整理(原創(chuàng))感興趣的朋友可以參考下2013-01-01
php curl 模擬登錄并獲取數(shù)據(jù)實例詳解
cURL 是一個功能強大的PHP庫,使用PHP的cURL庫可以簡單和有效地抓取網(wǎng)頁并采集內(nèi)容,設置cookie完成模擬登錄網(wǎng)頁,curl提供了豐富的函數(shù),開發(fā)者可以從PHP手冊中獲取更多關于cURL信息。本文以模擬登錄開源中國(oschina)為例,需要的朋友可以參考下2016-12-12
php方法調(diào)用模式與函數(shù)調(diào)用模式簡例
函數(shù)調(diào)用模式時,this被綁定到全局對象。這種情況在對象的屬性與方法被初始化時也能夠得到反應。2011-09-09
Zend Studio (eclipse)使用速度優(yōu)化方法
Zend studio7.12那速度正太讓人火大了,修改文件的保存就building workspace,要得等上好一會2011-03-03

