文件未上传到数据库

时间:2018-12-02 20:21:58

标签: php mysql database forms file-upload

由于某些原因,我的文件未上传到我的数据库。我已在php.ini文件中打开了文件上传功能,并尝试上传小于2 mb的文件,但到目前为止还没有运气。我对编程很陌生,所以请忍受。

    <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Upload PDF & Word files to Database</title>
</head>
<body>
<?php
$dbh = new PDO("mysql:host=localhost;dbname=database", "user", "root");
if (isset($_FILES['myfile'])) {
    $name = $_FILES['myfile']['name'];
    $mime = $_FILES['myfile']['type'];
    $data = file_get_contents($_FILES['myfile']['tmp_name']);
    $stmt = $dbh->prepare("INSERT INTO myblob VALUES('',?,?,?)");
    $stmt->bindParam(1, $name);
    $stmt->bindParam(2, $mime);
    $stmt->bindParam(3, $data, PDO::PARAM_LOB);
    $stmt->execute();

}
?>
<form method="post" enctype="multipart/form-data">
   <input type="file" name="myfile"/>
   <input name="btn" type="hidden" value="Value">
   <input type="submit" value="Upload">
</form>

</body>
</html>   

table structure

1 个答案:

答案 0 :(得分:-1)

这是因为

if (isset($_POST['btn'])) {

将永远不会发生。 按钮不发布值

替换为

if (isset($_FILES['myfile'])) {

或将提交替换为

<input name="btn" type="hidden" value="somevalue">
<input type="submit" value="Upload">

稍后将使您的php保持原样,但发布一个名称为btn的值