我写了这段代码来上传我的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失败”和致命错误..无法弄清楚原因。你能帮助我并纠正我的代码吗,对我来说很高兴
答案 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
移动上传的文件