自己写的简易版的图片上传,没有那么多限制,可以实现图片上传保存本地的功能。
创建数据库
DROP TABLE IF EXISTS `image`;
CREATE TABLE `image` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 NOT NULL,
`pic` varchar(255) NOT NULL,
`type` varchar(50) CHARACTER SET utf8 NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=89 DEFAULT CHARSET=latin1;
主要代码 upload.php
<!--提交表单-->
<form action="" enctype="multipart/form-data" method="post" name="upload">
选择文件:<input type="file" name="file" /><br /><br />
<input type="submit" value="上传文件"/>
</form>
<?php
//设置编码格式
header("Content-Type:text/html; charset=utf-8");
//设置中国市区 如果不设置的话date()警告不不安全
date_default_timezone_set("PRC");
//---------------------------------------
//function count_size($bit)
//{
// $type = array('Bytes','KB','MB','GB','TB');
// for($i = 0; $bit >= 1024; $i++)
// {
// $bit/=1024;
// }
// return (floor($bit*100)/100).$type[$i];
//}
//文件单位转换
//被上传文件的名称
$name = @$_FILES['file']['name'];
//被上传的文件类型
$type = @$_FILES['file']['type'];
//存储在服务器的文件的临时名称
$tmp_name = @$_FILES['file']['tmp_name'];
//上传文件的大小
$size = @$_FILES['file']['size'];
//1M = 1048546
//上传大小的限制
if($size>=104857600){
echo "<script>alert('图片太大了,图片大小不能超过100KB')</script>";
}else if($name)
{
// 存储文件的文件夹
$path = './img/';
// 将上传文件移动到新的位置 临时文件的名字 含有路径的新文件名
if(move_uploaded_file($tmp_name, $path.$name)) {
// 链接数据库 数据库 用户名 密码 表单 默认端口
$conn = mysqli_connect('localhost', 'ccc', '123', 'demo', '3306');
// 系统生成的时间 格式可以自己选
$time = date("Y-m-d H:i:s");
// 新的时间戳 以防发生调取文件重复
$newname = '$$$'.time();
// 上传文件的路径
$xname = $path . $name;
// sql语句 插入 表单 名字 路径 属性 时间 时间戳 路径 属性 时间
$q = "insert into image (name, pic, type, date) values ('{$newname}','{$xname}','{$type}','{$time}')";
// 执行sql语句
$result = $conn->query($q);
// true
if ($result) {
// 弹框提醒
echo "<script>alert('上传成功')</script>";
// 打印名字
echo "名字:$newname</br>";
// 显示图片
echo "<img src=$xname>";
}
// flase
else {
// 弹框提醒
echo "<script>alert('上传失败')</script>";
}
}
}
?>
function count_size()代码中这个是判断图片的大小的,因为是简化版的我也没有用,另附上数据大小转换表
1M=1Mb=1024K=1024Kb=1024*1024B
1G=1Gb=1024M=1024Mb=1024*1024KB=10243B
1TB=1024GB=10242MB=10243KB=10244B=8*10244位
希望可以帮助更多的人,多多点赞哦!