Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件未上载到数据库_Php_Mysql_Database_Forms_File Upload - Fatal编程技术网

Php 文件未上载到数据库

Php 文件未上载到数据库,php,mysql,database,forms,file-upload,Php,Mysql,Database,Forms,File Upload,由于某些原因,我的文件没有上载到我的数据库。我在php.ini文件中打开了文件上载,并尝试上载小于2MB的文件,但到目前为止没有成功。我对编程很陌生,所以请容忍我 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Upload PDF & Word files to Database</title> </head&g

由于某些原因,我的文件没有上载到我的数据库。我在php.ini文件中打开了文件上载,并尝试上载小于2MB的文件,但到目前为止没有成功。我对编程很陌生,所以请容忍我

    <!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>   

将PDF和Word文件上载到数据库
这是因为

if (isset($_POST['btn'])) {
永远不会发生。 按钮不会发布值

换成

if (isset($_FILES['myfile'])) {
或者将提交替换为

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


后者将保持您的php不变,但发布一个名为
btn

的值。您必须想知道OP在所有这一切中的位置。我还想知道它将如何显示,并在id列
$row['id']
@AlonEitan正确,这样做是很好的做法:)但是,我只有一张投票结束,我不会把它吹到一个愚蠢的小(潜在的)打字错误lol!!此时此刻,我觉得给定表单外的输入和
$row['id']
中的空格都可以作为未定义的索引,因此值得投票关闭。编辑:并添加了另一个。参考那些。你错过了一些东西。看到你取消了答案,我想给你投否决票的人不同意你说,
if(isset($\u POST['btn']){…}
永远不会发生。他们确实有该名称的提交输入。这样做的目的是确保单击它时没有执行该条件语句中的内容。但同样,这是一个输入错误的问题。“永远不会发生。按钮不会发布值”-在当前上下文中,这是错误的,如果您使用js提交表单,也可能是错误的,而不是通过单击提交按钮-我必须取消删除它,因为帖子上的评论有一半是关于它的,但是是的,它不正确,应该被否决或删除。
if($\u服务器['REQUEST\u方法]==='POST'&&$\u文件['myfile']['size']>0)