[英]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.