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