PHP上传文件到MySQL数据库

标签 php mysql file-upload

我正在尝试在 mysql 数据库中上传文件,但是当我单击“上传”按钮时,我返回了纯 PHP 代码。我不知道我的问题出在哪里.. 这是我的 HTML:

<html>
    <head>
      ...
    </head>
    <body>
        <form id="upload" action="./upload.php" method="POST" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="Upload">
        </form>
    </body>
</html>

这是用于上传的 PHP 代码:

<? php

if(isset($_POST['upload']) && $_FILES['file']['size'] > 0)
{
    $file_name = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size'];
    $file_tmp = $_FILES['file']['tmp_name'];
    $file_type = $_FILES['file']['type'];

    $parser = fopen($file_tmp, 'r');
    $content = fread($parser, filesize($file_tmp));
    $content = addslashes($content);
    fclose($parser);

    if(!get_magic_quotes_gpc())
    {
        $file_name = addcslashes($file_name);
    }

    $user = "root";
    $host = "localhost";
    $pass = "";
    $db   = "filemeup";

    try 
    {
        $conn = new PDO("mysql:host=$host;dbname=$db;", $user, $pass);
    } 
    catch(PDOException $e) 
    {
        echo "Error: ".$e->getMessage();
        exit;
    }
    $conn->query("SET NAMES utf8");

    $query="INSERT INTO files (name, size, type, content)"."VALUES (:name, :size, :type, :content) ";
    $stmt = $this->conn->prepare($query);
    $stmt->bindParam(':name', $file_name);
    $stmt->bindParam(':size', $file_size);
    $stmt->bindParam(':type', $file_type);
    $stmt->bindParam(':content', $content);
    $stmt->execute();
?>

最佳答案

将 PHP 起始标签更改为 <?php并将大括号添加到文件末尾。 (缺少 if(isset($_POST['upload']) && $_FILES['file']['size'] > 0) 的右括号)

我试过了,尽管它是隐藏的,但它在 Google Chrome 中肯定不起作用。

关于PHP上传文件到MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875475/

相关文章:

php - Magento 2 Controller Post 抛出 404 错误

php - PHP 脚本中的 XSS 漏洞

php - 是否有替代事务允许对表执行多个并发查询并确保表处于一致状态?

mysql - 多个连接的奇怪 SQL 问题

php - 我如何获得下一个公开号码?

mysql - 如何 ssh 到 Linux 机器并执行包含字符串的 mysql 命令?

php - 在 PHP 和 MySQL 中,我的代码仅打印表列的一行

python - 如何在Python中通过HTTPPost方法发送大文件,上传大文件

javascript - 当我使用多个文件上传时,字段不起作用

javascript - 是否可以执行异步跨域文件上传?