我需要将表单值检索到insert.php
文件中,以便将它们存储在数据库中。然而,表单中的元素之一是文件选择器对话框,用于上传 JPG 或其他文件格式的图像文件。
我在网上找到此代码通过发布请求发送图像,但无法使其正常工作
$pic=($_FILES['photo'][image']);
它只显示文件名而不是实际文件本身
我需要将表单值检索到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
将其配置为Linux 机器上的默认localhost的 web 文件夹。