【发布时间】:2019-04-30 06:14:27
【问题描述】:
我创建了一个页面,您可以在其中上传文件,并将其存储到数据库中,但它不起作用,我不知道为什么会这样。这是我的代码:
HTML
<form id="upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
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);
}
include('config.php');
$conn->query("SET NAMES utf8");
$query="INSERT INTO files (name, size, type, content, status)"."VALUES (:name, :size, :type, :content, 'Iedereen') ";
$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();
}
?>
【问题讨论】:
-
您收到了哪条错误消息?
-
您正在使用准备好的语句,因此您应该删除对
addslashes()的调用。另外,content字段在数据库中是什么样的? -
内容是一个中等大小的 blob,我没有收到错误,只是没有任何反应
-
页面刚刚刷新(我使用jquery mobile)
-
如果您使用 javascript 发布表单,您也需要在此处显示。