database - 如何使用 url 将 png 文件上传到数据库?
问题描述
各位程序员,我是网络编程新手,我有一个任务,我需要使用 url 将 png 文件上传到 sql 数据库。
$connection = mysqli_connect ($db_host,$db_user,$db_pass);
mysqli_select_db($connection,$db_name);
$sql1 = "INSERT INTO figures (Id, Name, Image) VALUES ('".$_GET['id']."', '".$_GET['Name']."', '".$_GET['Image']."')";
mysqli_query($connection,$sql1);
那些用于发送数据的行,这样我可以将 VARCHAR 上传到数据库,但是我不能上传 png ,我不知道如何在这里定义文件路径。(也许如果你知道我的任务更简单的解决方案,你能分享一下吗?)提前谢谢!!
解决方案
首先,您需要将发送表单设置为 multipart 并将方法更改为POST:
<form method="POST" action="uploader.php" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="text" name="id">
<input type="submit" value="Upload">
</form>
在 PHP 页面中,您可以使用 $_FILES 获取文件数据:
// I dont know what is id here? shouldn't be the auto Primary key?
$id=$_POST['id'];
//Get name of file
$imageName=$_FILES["myfile"]["name"];
//Get the binary data of the image
$imageData= addslashes(file_get_contents($_FILES['myfile']['temp_name']));
$connection = mysqli_connect ($db_host,$db_user,$db_pass);
mysqli_select_db($connection,$db_name);
$sql1 = "INSERT INTO figures (Id, Name, ImageData) VALUES ('$id', '$imageName', '$imageData')";
mysqli_query($connection,$sql1);
请注意,列 imageData 的类型应该是BLOB。
正如您所提到的,您是编程新手,我不得不说您也可以选择将文件直接上传到服务器,并且只将 url 保存在数据库中。
推荐阅读
- python - 编译器在此 kivy python 代码中显示语法错误。但我没有找到任何
- sorting - 用芬威克树计算子数组和
- html - 如何使用 jQuery 添加多个元素?
- python - 如何根据第二个数据框在第一个数据框中创建新列?
- docker - 为开发和生产环境管理软件依赖项的最佳实践
- python - AttributeError:“StandardFrame”对象没有属性“tk”
- android - 房间数据库发出所有数据而不是跟随查询
- javascript - 在nestjs中验证多层嵌套对象
- r - 在 R 中按名称调用列表中的数据框
- linux - docker-compose 在容器内上下