PHP文件上传到数据库

时间:2018-02-17 21:21:34

标签: php html mysql

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

我正在尝试将简单图像上传到我的数据库所以我可以在这个用户托管网站上工作。到目前为止没有任何工作。我在这里。我看了很多教程。

2 个答案:

答案 0 :(得分:0)

通过以前遇到文件上传问题,您可以更轻松地使用&#39; move_uploaded_file()&#39;将数据库和编码上传到服务器。然后在您的数据库中提供参考。在上面的示例中,您将文件存储在临时文件夹[&#39; tmp_name&#39;]中,保存该文件名,但之后不会将文件传输到不会删除它的位置。

因此,对于通用的帮助:

        $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);

这样做的原因是当你保存到&t; tmp&#39;文件夹(你必须要一点),文件也被重命名为一组看似随机的字符。因此,您需要获取该文件位置,将其移动到您选择的文件夹,并将其命名为可查找的内容。然后你可以在你的数据库中保存$ img路径并从任何地方调用它(进行一些修改)。这需要一些玩法,但这应该会有所帮助。

答案 1 :(得分:0)

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

这是执行此操作的代码

$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')")