无法使用wpdb将图像插入数据库

时间:2015-11-19 05:12:42

标签: php mysql blob file-get-contents

我正在尝试运行此代码以从前端获取图像输入。我知道我不能仅使用此$_POST['img']上传图片。我读到为了这个目的,我必须使用file_get_contents()。但我是新手,我不知道如何使用file_get_contents()

但是我尝试了这段代码,但是我没有成功插入。

<form action="" method="post">
<label id="img">image: <input type="file" name="img" id='media'/></label>
<input type="submit" name="Submit" value="upload"/>

<?php

global $wpdb;
if($_POST['Submit']) 
{
$image=$_POST['img'];

if($wpdb->insert(
    'image',
    array(

            'image' => $image


        )
) == false) echo 'Database Insertion failed';
else echo 'Database insertion successful<p />';
}
?>

这不起作用。在此之后我尝试了这个。但仍然不成功。

<form action="" method="post">
<label id="img">image: <input type="file" name="img" id='media'/></label>
<input type="submit" name="Submit" value="upload"/>

<?php

global $wpdb;
if($_POST['Submit']) 
{
$image=$_POST['img'];
$item = file_get_contents($_FILES['img']['tmp_name']);
if($wpdb->insert(
    'image',
    array(

            'image' => $item


        )
) == false) echo 'Database Insertion failed';
else echo 'Database insertion successful<p />';
}
?>

为此我收到警告     Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\kite\wp-content\plugins\php-code-widget\execphp.php(27) : eval()'d code on line 11

有人请帮帮我。

在我的数据库中,在“image”表中,“image”列的数据类型为BLOB,不确定问题是否与此有关。

提前致谢

1 个答案:

答案 0 :(得分:0)

对于文件上传,您应添加enctype="multipart/form-data"

<form enctype="multipart/form-data" action="" method="post">
      ^                           ^

首先上传到某个文件夹,然后使用file_get_contents()

if (move_uploaded_file($_FILES['file']['tmp_name'], "your path". $_FILES["file"]['name'])) {
       // image will get uploaded here
}

然后使用

file_get_contents("new path")