2

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

我在网上找到此代码通过发布请求发送图像,但无法使其正常工作

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

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

4

1 回答 1

4

首先,您需要将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 文件夹。

于 2012-07-21T08:42:25.543 回答