weixin_44112235 2019-07-14 10:19 采纳率: 0%
浏览 316

PHP中向MySQL数据库上传文件失败?

使用PHP代码向MySQL数据库中上传文件时,数据库中无法接到任何内容,但是用控制台向数据库中上传相同文件时就可以上传到数据库里,上传的文件可以正常获取。

HTML文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="test.php" method="post" enctype="multipart/form-data" name="mainForm" id="mainForm">
            <input type="file" name="myfile" />
            <br>
            <input type="submit" name="submit" value="submit" />
        </form>
    </body>
</html>

PHP文件:

<?php
    header("content-type:text/html;character=utf-8");
    $fp = fopen($_FILES["myfile"]["tmp_name"],"rb");
    $buf = addslashes(fread($fp,$_FILES["myfile"]["size"]));
    $dbh = new PDO("mysql:host = localhost;port = 3306; dbname = test","root","");
    if($dbh->query("INSERT picture(picture) VALUES('$buf')"))
    echo "图片上传成功";
    else 
    echo "图片上传失败";
    $dbh = NULL;
?>
  • 写回答

1条回答 默认 最新

  • wanmeifengfeng 2019-07-16 21:31
    关注

    图片上传数据库你得先吧图片转换成Base64 再入库,但是,没人这么操作啊,这样数据库根本吃不消

    正确应该是上传好,返回上传到URL路径,然后把这个路径入库

    
    <?php
    if ((($_myfileS["myfile"]["type"] == "image/gif")
    || ($_myfileS["myfile"]["type"] == "image/jpeg")
    || ($_myfileS["myfile"]["type"] == "image/pjpeg"))
    && ($_myfileS["myfile"]["size"] < 20000))
      {
      if ($_myfileS["myfile"]["error"] > 0)
        {
        echo "Return Code: " . $_myfileS["myfile"]["error"] . "<br />";
        }
      else
        {
        echo "Upload: " . $_myfileS["myfile"]["name"] . "<br />";
        echo "Type: " . $_myfileS["myfile"]["type"] . "<br />";
        echo "Size: " . ($_myfileS["myfile"]["size"] / 1024) . " Kb<br />";
        echo "Temp myfile: " . $_myfileS["myfile"]["tmp_name"] . "<br />";
    
        if (myfile_exists("upload/" . $_myfileS["myfile"]["name"]))
          {
          echo $_myfileS["myfile"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_myfile($_myfileS["myfile"]["tmp_name"],
          "upload/" . $_myfileS["myfile"]["name"]);
          echo "你可以把这个路径写入数据库: " . "upload/" . $_myfileS["myfile"]["name"];
    
          }
        }
      }
    else
      {
      echo "Invalid myfile";
      }
    ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘