将图像/文件信息保存在mysql数据库中

时间:2016-10-05 13:44:29

标签: php mysql file upload

我写了这段代码来上传我的mysql数据库中的文件信息:

<?php
require __DIR__ . '/database.php'; 

$file = $_GET["item"];

$itemName = $_GET["itemName"];
$uploadDate = filectime($file);
$filePathArray = pathinfo($file);
$filePath = $filePathArray["filename"];

$stmt = db()->prepare("INSERT INTO items (id, itemName, uploadDate, filePath) VALUES ('','{$itemName}','{$uploadDate}','{$filePath}"); 
$stmt->execute();  
?>

Html代码:

<form action="upload_action.php">
  Item Name:<br>
  <input type="text" name="itemName"><br>
   File:<br>
  <input type="file" name="item"><br>
  <input type="submit" name="submit">
</form>

但我总是得到“filectime():stat失败”和致命错误..无法弄清楚原因。你能帮助我并纠正我的代码吗,对我来说很高兴

1 个答案:

答案 0 :(得分:0)

您必须将enctype属性添加到表单中:

<form method="post" action="upload_action.php" enctype="multipart/form-data"> 
  Item Name:<br>
  <input type="text" name="itemName"><br>
   File:<br>
  <input type="file" name="item"><br>
  <input type="submit" name="submit">
</form>

然后,您上传的文件将位于全局变量“$ _FILES”

<?php
print_r($_POST);
print_r($_FILES);

$file = $_FILES["item"];

$itemName = $_POST["itemName"];
$uploadDate = filectime($file['tmp_name']);
$filePathArray = pathinfo($file['tmp_name']);
$filePath = $filePathArray["filename"];

print_r($uploadDate);
print_r($filePathArray);
?>

但在保存数据库中的路径之前,您应该使用move_uploaded_file

移动上传的文件