PHP Msql 图片上传

自己写的简易版的图片上传,没有那么多限制,可以实现图片上传保存本地的功能。

创建数据库

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;
QQ图片20170909113603.png

主要代码 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位

希望可以帮助更多的人,多多点赞哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,919评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,364评论 4 61
  • 读书: 感悟:心若在,梦就在 写作:大约500字 幸福感:6分
    山意阅读 818评论 0 0
  • 龙小云问冷锋为什么要当兵,冷锋说“当兵后悔两年,不当兵后悔一辈子”。对于我来说从选择支教到结束,没有丝毫的后悔。假...
    Fanshaohua阅读 4,608评论 0 1
  • 前些天在朋友圈看到一个朋友发的动态说他的一个学生,平时成绩各方面都很优秀的一个孩子,因为发现自己写错字了默默的流泪...
    诗缘阅读 3,093评论 0 0

友情链接更多精彩内容