PHP上传图片到数据库和存储到本地文件夹的方法
文件上传必须是post,enctype="multipart/form-data"这种方式可以接收$_FILES。
最大的上传大小不能大于200M的服务器内存
<?php
//错误号处理
//错误号处理
if($_FILES['pic']['error'] > 0)
{
switch($_FILES['pic']['error'])
{
case 1:
echo "超过最大限制";
break;
case 2:
}
}
限制文件上传的类型
if($_FILES['pic']['type'])
{
list($d,$l)=explode('/',);
}
if($l != image)
{
echo "上传错误类型";
exit;
}else()
$allowtype=array("png","gif");
$arr = explode(".",$_FILES['pic']['name']);
$hz=$arr[count($arr) -1];
if(!in_array($hz,$allowtype))
{
echo "这是不允许的类型";
exit;
}
{
}
//文件上传
//1.表单 file文本框 表单属性
//2. 接收post的文件数据
//平常我们都用$_POST
//接收文件
/*
array(2) {
["img"]=>
array(5) {
//源文件名
["name"]=>
string(26) "8a0d8cbbgw1dyjbhf4o3ej.jpg"
//文件 格式
["type"]=>
string(10) "image/jpeg"
//tmp temp 临时 文件
["tmp_name"]=>
string(22) "D:\wamp\tmp\phpFAE.tmp"
//error 错误提示
["error"]=>
int(0)
//size 文件大小
["size"]=>
int(93943)
}
["img2"]=>
array(5) {
["name"]=>
string(15) "未命名66676.jpg"
["type"]=>
string(10) "image/jpeg"
//现在的网站的目录D:\wamp\www\e1215\20121211upload
["tmp_name"]=>
string(22) "D:\wamp\tmp\phpFBF.tmp"
["error"]=>
int(0)
["size"]=>
int(193903)
}
}
//现在的网站的目录D:\wamp\www\e1215\20121211upload
//D:\wamp\tmp\phpFBF.tmp
//以上 都是发生 服务器内部的
//我们从外部去访问图片
localhost:8088/e1215\20121211upload\abc.jpg
*/
var_dump($_FILES);
$tmp_name = $_FILES["img"]["tmp_name"]; // 临时文件地址
$filename = $_FILES['img']['name'];//这个是源文件名
$dirname = dirname(__FILE__).DIRECTORY_SEPARATOR."upload";
//make mk
//新建年
$dirname .= DIRECTORY_SEPARATOR.date("Y");
if(!file_exists($dirname))mkdir($dirname);
//新建月
$dirname .= DIRECTORY_SEPARATOR.date("m");
if(!file_exists($dirname))mkdir($dirname);
//新建日
$dirname .= DIRECTORY_SEPARATOR.date("d");
if(!file_exists($dirname))mkdir($dirname);
//这个是当前网站目录
var_dump($dirname);
move_uploaded_file($tmp_name,$dirname.DIRECTORY_SEPARATOR.$filename);
$imgsrc = "upload/".date("Y")."/".date("m")."/".date("d")."/".$filename;
?>
<img src="<?php echo $imgsrc?>">
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="img"/>
<input type="file" name="img2"/>
<input type="submit" value="上传" />
</form>