Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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_Html_Mysql - Fatal编程技术网

PHP文件上传到数据库

PHP文件上传到数据库,php,html,mysql,Php,Html,Mysql,我试图上传一个简单的图像到我的数据库,这样我就可以在这个用户托管的网站上工作。到目前为止,一切都不起作用。我死在这里了。我已经阅读了很多教程。以前遇到过文件上载问题,因此在数据库和您的编码中,使用“move\u uploaded\u file”将文件上载到服务器,然后在数据库中提供一个参考,这要容易得多。在上面的示例中,您将文件存储在临时文件夹['tmp_name'],保存该文件名,但不将文件传输到不会删除它的位置 因此,要获得一些通用的帮助: <body> <form act

我试图上传一个简单的图像到我的数据库,这样我就可以在这个用户托管的网站上工作。到目前为止,一切都不起作用。我死在这里了。我已经阅读了很多教程。

以前遇到过文件上载问题,因此在数据库和您的编码中,使用“move\u uploaded\u file”将文件上载到服务器,然后在数据库中提供一个参考,这要容易得多。在上面的示例中,您将文件存储在临时文件夹['tmp_name'],保存该文件名,但不将文件传输到不会删除它的位置

因此,要获得一些通用的帮助:

<body>
<form action="#" enctype="multipart/form-data" method="post">
<input multiple="" name="img[]" type="file" />
<input name="submit" type="submit" />
</form>
<?php
    mmysql_connect("localhost","root","");
    mysql_select_db("multiple");
    if(isset($_POST['submit'])){
        $filename = $_FILES['img']['name']);
        $tmpname = $_FILES['img']['tmp_name']
        $filetype = $_FILES['img']['type'];
        for($i=0; $i<=count($tmpname)-1; $i++){
            $name =addslashes(filename[$i]);
            $tmp = addslashes(file_get_contents($tmpname[$i]));
            mysql_query("INSERT into img(name,image) values('$name','$tmp')");
            echo "uploaded";
        }
    }
?>
</body>
</html>

原因是,当您保存到“tmp”文件夹(必须保存一段时间)时,该文件也会被重命名为一组看似随机的字符。因此,您需要获取该文件的位置,将其移动到您选择的文件夹中,并将其命名为可查找的名称。然后,您可以在数据库中保存$img路径,并通过一些修改从任何地方调用它。这需要一些操作,但这应该会有所帮助。

要直接从上载的文件将图像上载到数据库,需要上载图像的base64编码版本。还要确保数据库中图像的字段类型实际上是blog或LongBlog

下面是执行此操作的代码
        $fileName $_FILES['img']['name'];
        $fileType = $_FILES['img']['type'];
        $fileLocation = $_FILES['img']['tmp_name'];
        $newFileName = "newFileName.jpg";
        $img = "folder/".$newFileName;
move_uploaded_file($fileLocation, "../folder/".$newFileName);

您似乎有一个口吃的mmysql_connectlocalhost,root,;每次在新代码中使用数据库扩展时,它都会被弃用,并且已经存在多年,在PHP7中永远消失。如果您只是在学习PHP,请将精力花在学习PDO或mysqli数据库扩展和准备好的语句上。您的脚本非常开放,甚至可以使用一些合理的代码缩进。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您将感谢我。此脚本不会上载文件。它只是将文件名保存到数据库-没有检查它是否工作-。检查这个
$file = $_FILES['file'];
$filename = $file['name'];
$convert_to_base64 = base64_encode(file_get_contents($file['tmp_name']));
$base64_image = "data:image/jpeg;base64,".$convert_to_base64;
$query = mysqli_query($con, "INSERT INTO 'table'(image)VALUES('$base64_image')")