php上传图片到指定位置路径保存到数据库的具体实现龙8游戏,PHP文件上传实例详解

表单中必须设置enctype=”multipart/form-data,首先来看下上传部分的表单代码,//密码

先是来看下上传部分的表单代码:  

1.conn.php

复制代码 代码如下:

复制代码 代码如下:

     <form method=”post” action=”upload.php” enctype=”multipart/form-data”>  
     <table border=0 cellspacing=0 cellpadding=0 align=center width=”100%”>  
      <tr>   
        <td width=55 height=20 align=”center”><input type=”hidden” name=”MAX_FILE_SIZE” value=”2000000″>文件: </TD>  
        <td height=”16″>   
        <input name=”file” type=”file”  value=”浏览” >             
        < input type=”submit” value=”上传” name=”B1″>  
        </td>  
      </tr>  
     </table>  
     </form> 

<?
$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”;//数据库名称

此地有多少个要小心的地点,首先看那句<form method=”post” action=”upload.php” enctype=”multipart/form-data”>,这里大家使用POST方法,个别浏览器还辅助PUT方法,当然那亟需对台本举办修改,笔者并不提议那样做。表单中必须设置enctype=”multipart/form-data,这样,服务器就驾驭上传文件带有常规表单音讯,记住,那几个是必得设置的。其余还须求一个隐蔽域来限制上传文件的最大尺寸:<input type=”hidden” name=”MAX_FILE_SIZE” value=”三千000″>,这里name必需设置成MAX_FILE_SIZE,其值正是上传文件的最大尺寸,单位是B,这里本人限制作而成2M。再看那句:<input name=”file” type=”file”  value=”浏览” >,type=”file”表明了文件类型,那样三个主导的上传文件接口就做到了,接下去讲讲什么用PHP来拍卖上传的文件,其它你的php.ini中安装的上传文件最大尺寸大概会影响到你的骨子里传,请依据实际处境修改,另PHP的上传是先传到临时目录,在移至钦定目录的,了;不经常目录的可依附要求修改,也可利用私下认可值。 
   好的,表单提交upload.php,来看看那几个页面都有哪些: 
PHP代码如下:  

do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);

复制代码 代码如下:

if ($con==FALSE)
{
echo
“<center>张开数据库战败!<br>请刷新后重试。</center>”;
return true;
}

<?php  
 /*****************************************  
   Title :文件上传详解  
   Author:leehui1983(辉老大)  
   Finish Date  :2006-12-28  
  *****************************************/  
   $uploaddir = “./files/”;//设置文件保留目录 注意包涵/      
   $type=array(“jpg”,”gif”,”bmp”,”jpeg”,”png”);//设置允许上传文件的项目   
   $patch=”  

?>

   //获取文件后缀名函数  
      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)){  

2.upload.php

            if(is_uploaded_file($_FILES[‘file’][‘tmp_name’])){  
                //输出图片预览  
                echo “<center>您的文书已经上传达成 上传图片预览: </center><br><center><img src=’$uploadfile’></center>”;  
                echo”<br><center><a href=’javascript:history.go(-1)’>继续上传</a></center>”;  
              }  
              else{  
                echo “上传战败!”;  
              }  
        }  
   }   
?> 

复制代码 代码如下:

 
刚看这个你也可以有一些晕~~,不过没什么,听作者讲完,你就能够意识实际上这玩意儿SO EASY!!首先自身讲下原理,该程序以上传图片为例,先剖断文件类型是还是不是为图片格式,假若则上传文件,以随机数和岁月的构成重新命名文件(防止上传文件重名,那样做很有要求!),接着上传文件到内定目录,成功上传则输出上传的图纸预览。这里要对程序中部分函数作些解释。先看return substr(strrchr($filename, ‘.’), 1), strrchar()函数有啥效果与利益呢,笔者举个例证我们就知晓,比如叁个图纸文件 pic.jpg,大家用 strrchr管理,strrchr(pic.jpg,’.’),它将回来.jpg,驾驭了呢?该函数重回钦定字符在该字符串最后出现的岗位后的字符。同盟 substr() 大家就足以取到jpg,那样我们就获得了文件的后缀名,来剖断上传文件是还是不是吻合钦点格式。本程序把钦赐的格式放在二个数组中,实际使用时可依据需求加上。 
    接下去看产生随机数文件名部分, 我们看到mt_srand()这几个函数,手册上叫他“播下一个越来越好的轻巧数发生器种子”,其实就是初步化三个自由数的函数,参数是(double)microtime() * 1000000,这里假设不那是参数就能够自动安装个随机数,当然那不符合大家的急需,如此一来,随机数就有所一定的长短,保障了上传文件不重名。接着,大家调用决断文件类型的函数,并将其转会为小写strtolower(fileext($_FILES[‘file’][‘name’])),这里有个很关键的东东$_FILES ,那是个最好全局数组,保存了急需管理的表单数据,假使展开了register_globals,也足以直接访谈,但那是不安全的。看刚刚那一个上传递口<input name=”file” type=”file”  value=”浏览” >,依照那个表单名称,大家得以拿走十分多音信: 
    $_FILES[‘file’][‘name’]–  获得文件名称 
    $_FILES[‘file’][‘tmp_name’]–获得权且存款和储蓄地方 
    $_FILES[‘file’][‘size’]–获得文件大小 
    $_FILES[‘file’][‘type’]–得到文件MIME类型 
收获这一个音信,我们就足以轻巧判别文件的音信了,是否很有利?^_^,接下去还会有一部分函数需求驾驭,file_exists()–剖断钦命目录是或不是留存,不设有大家自然不可能上传(好疑似废话!),move_uploaded_file–将上传文件移至钦命目录,is_uploaded_file–判定文件是或不是业已因此HTTP POST上传。成功上传,大家就输出预览,不然输出上传失利!顺理成章 
   我们可依照那几个举行扩充,比如协作JS达成多文本上传,如DZ的上传效果,再深一点组合AJAX达成无刷新上传,比较多博客都有采纳,最终播放下下两篇原创小说的预先报告 
1  作者将把这些事例扩充,扩充后台和数据库部分,达成上传文件处理,调查,将公布在原创区。 
2  利用目录函数达成公文管理,将发表在菜鸟区 
可望感兴趣的恋人届时收看~~~,谢谢!!!!!!

<?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″>

你只怕感兴趣的稿子:

  • PHP 图片文件上传实现代码
  • 一个经文的PHP文件上传类分享
  • jQuery Ajax文件上传(php)
  • php+ajax实现图片文件上传作用实例
  • php 文件上传实例代码
  • PHP达成录像文件上传完整实例
  • php
    文件上传后缀名与文件类型对照表(大概饱含全部文件)
  • PHP文件上传推断file是否己选取上传文件的主意
  • php多文件上传完毕代码
  • php达成网页常见文件上传成效

<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

— 主机: localhost
— 生成日期: 二〇〇八 年 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上传图片存入数据库示例分享
  • php中哪些将图片积存在数据Curry
  • php下将图片以二进制存入mysql数据库中并出示的落实代码
  • php
    从数据库提取二进制图片的管理代码
  • php将图纸保存入mysql数据库失败的缓慢解决办法
  • php将图纸文件转变来二进制输出的格局
  • php图片的二进制转换达成情势
  • PHP完结上传图片到数据库并体现输出的主意