簡體   English   中英

PHP將文件上傳到MySQL數據庫

[英]PHP upload file to MySQL database

我試圖在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)括號if(isset($_POST['upload']) && $_FILES['file']['size'] > 0)

我嘗試了它,盡管它被隱藏了,但它絕對不能在Google Chrome中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM