如何在HTTPPOST请求中传递图像并插入数据库表


How to pass an image in HTTP POST request and insert into a Database Table

我需要将表单值检索到insert.php文件中,以便将它们存储在数据库中。然而,表单中的一个元素是文件选择器对话框,用于上传JPG或其他文件格式的图像文件。

我在网上找到了这个代码,可以通过帖子请求发送图像,但无法使其正常工作

$pic=($_FILES['photo'][image']); 

它只显示文件的名称,而不是实际的文件本身

首先,您需要将enctype属性添加到HTML表单中

<form action="page.php" method="post" accept-charset="utf-8" enctype="multipart/form-data">
    <input type="file" name="photo" id="photo" />
    <input type="submit" value="Upload" />
</form>

接下来,当这将在下一页上发送时,使用$_FILES全局数组而不是$_POST数组来检索图像。

<?php
    move_uploaded_file( $_FILES['photo']['tmp_name'], "/var/www/image.jpg" );
    echo("<img src='image.jpg'");
?>

所有文本数据将使用$_POST发送,但文件将使用$_FILES传输。

编辑:如果您想进一步将上传的数据插入表中(尽管这是不建议的,并且会造成巨大的性能损失)

$image = file_get_contents( "/var/www/image.jpg" );
$image = addslashes( $image );
...
$sql = "INSERT INTO pictures(image) VALUES('" . $image . "')";
//remaining MySQL and PHP code

注意:这里我考虑将/var/www作为我的web文件夹,它在Linux机器上配置为默认的localhost