php如何上传照片到数据库并回显

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: php如何上传照片到数据库并回显
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
</script>
<script src="./aa.js"></script>
<form method="post" action="" enctype="multipart/form-data" id="form">
<input type="file" name="file" onchange="aj()" id="bnm">
<input type="submit"  name="zxing">
<img src="https://img2.baidu.com/it/u=1171791560,3850385956&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"
alt="" id="a">
    </form>
<?php
// 连接
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password,$dbname);
// 检测连接
if ($conn->connect_error) {
    echo "<script>alert('小皮是不是没有开?')</script>";
}
// 允许上传的图片后缀
$a = array("gif", "jpeg", "jpg", "png");
// 分解后缀
$b = explode(".", $_FILES["file"]["name"]);
// 获取文件后缀名
$c = end($b);
$name = '二';
$passwordss = '123456';
// $f = $_POST['file'];
// $file = $_POST['file'];
// 插入
if (array_key_exists('zxing',$_POST)) {
$d = "upload/" . $_FILES["file"]["name"];
// copy($file,$_FILES["files"]);
echo "<br/>";
echo $f;
echo "<br/>";
    if ((($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg")
        || ($_FILES["file"]["type"] == "image/jpg")
        || ($_FILES["file"]["type"] == "image/pjpeg")
        || ($_FILES["file"]["type"] == "image/x-png")
        || ($_FILES["file"]["type"] == "image/png"))
        && ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
        && in_array($c, $a))
        {
            if ($_FILES["file"]["error"] > 0)
            {
                echo "66666";
            }
            else
            {
                // 判断上传的东西存不存在
                if (file_exists($d))
                {
                    echo 1;
                }
                else
                {
                    // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
                    move_uploaded_file($_FILES["file"]["tmp_name"], $d);
                    echo "名字".$_FILES["file"]["name"];
                    echo "<br/>";
                    echo "类型".$_FILES["file"]["type"];
                    echo "<br/>";
                    echo "大小".$_FILES["file"]["size"];
                    echo "<br/>";
                    echo "位置".$_FILES["file"]["tmp_name"];
                    echo "<br/>";
                    $fc = "./upload/" .$_FILES["file"]["name"];
                    echo $fc;
                    $sqls = "INSERT INTO wangmou (name, password,img)VALUES('$name','$passwordss','$fc')";
                    if ($conn->query($sqls) === TRUE) {
                    echo "<center> 插入成功!</center>";
                    }else{
                        // echo "失败";
                    echo "Error: " . $sql . "<br>" . $conn->error;
                    }
                }
            }
        }
        else
        {
            echo 2;
        }
}
    ?>
function aj() {
    let forms = new FormData(document.getElementById('form'));
    console.log(1);
    console.log(forms);
    $.ajax({
        type: "POST",
        url: "./b.php",
        data: forms,
        // dataType: 'json',
        Cache: false,
        processData: false,
        contentType: false,
        success: function (res) {
            console.log(res);
            $("#a").attr("src", res);
        },
        error: function (res) {
            console.log(res);
        }
    })
}
// 向数据库中插入图片
    $imgfile=$_FILES['imgfile'];
    $submitbtn=$_POST['submitbtn'];
    if($submitbtn=='OK' and is_array($imgfile))
    {
        $name=$imgfile ['name'];  // 取得图片名称
        $type=$imgfile ['type']; // 取得图片类型
        $size=$imgfile ['size'];  // 取得图片长度
       $tmpfile=$imgfile ['tmp_name'];  // 图片上传上来到临时文件的路径
       if ($tmpfile and is_uploaded_file ($tmpfile))  // 判断上传文件是否为空,文件是不是上传的文件
        {
            // 读取图片流
            $file=fopen($tmpfile,"rb");
            $imgdata=bin2hex (fread ($file,$size));  //bin2hex () 将二进制数据转换成十六进制表示
            fclose($file);
            $mysqli=new mysqli("localhost","root","123456","myDB");  // 连接数据库函数
            // 插入出数据库语句,图片数据前要加上 0x,用于表示 16 进制数
            if(new mysqli("insert into images(name,type,image) values('".$name."','".$type."',0x".$imgdata.")"))
               echo "<center> 插入成功!<br><br><a href='disimage.php'> 显示图片 </a></center>";
            else
                echo "<center> 插入失败!</center>";
            mysql_close();
        }
        else 
            echo "<center> 请先选择图片!<br><br><a href='image.html'> 点此返回 </a></center>";
    } else 
       echo "<center> 请先选择图片!<br><br><a href='image.html'> 点此返回 </a></center>";


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 SQL 关系型数据库
PHP与数据库交互:从基础到进阶
【10月更文挑战第9天】在编程的世界里,数据是流动的血液,而数据库则是存储这些珍贵资源的心脏。PHP作为一门流行的服务器端脚本语言,其与数据库的交互能力至关重要。本文将带你从PHP与数据库的基本连接开始,逐步深入到复杂查询的编写和优化,以及如何使用PHP处理数据库结果。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在PHP和数据库交互的道路上更加从容不迫。
|
3月前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
163 9
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
39 1
|
3月前
|
NoSQL 关系型数据库 PHP
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
168 72
|
3月前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
3月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
4月前
|
SQL 关系型数据库 MySQL
PHP与数据库交互的艺术:深入探讨PDO扩展
【8月更文挑战第28天】在数字信息时代的海洋里,PHP作为一艘灵活的帆船,承载着无数网站和应用的梦想。而PDO扩展,则是这艘帆船上不可或缺的导航仪,指引着数据安全与效率的航向。本文将带你领略PHP与数据库交互的艺术,深入浅出地探索PDO的世界,从连接数据库到执行复杂的查询,每一步都清晰可见。我们将一起航行在这段奇妙的旅程上,解锁数据的奥秘,体验编程的乐趣。
74 1
|
4月前
|
SQL 缓存 数据库连接
拯救php性能的神器webman-数据库
Webman 框架与这些最佳数据库管理实践的结合,可为应用程序提供快速响应的用户体验,高吞吐量,提升应用程序的整体性能表现。在对数据库交互进行设计和开发时,持续关注性能指标和优化,确保数据库层面不会成为应用程序的瓶颈,这样便能充分利用 Webman 来提升 PHP 应用的性能。
186 4
|
4月前
|
关系型数据库 MySQL 数据库连接
PHP数据库连接
PHP数据库连接
42 2
|
5月前
|
SQL 存储 PHP
PHP中使用SQLite数据库
SQLite是一种轻量级数据库引擎,数据以文件存储,支持SQL操作。PHP可连接SQLite执行CRUD操作。
100 4