我正在尝试在 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/