首先澄清,我知道有更好的方法可以做到这一点,但我决心尝试.
基本上,我正在尝试从表单帖子中获取图像,然后将其发送到数据库MEDIUMBLOB字段中.
不幸的是,使用我当前的方法,数据库列中的最终结果始终为零字节.
phpMyAdmin Screenshot
以下是表单上上传图片的代码:
input type="file" name="_imagePost">
这是页面上的PHP代码,我正在使用MySQLi:
if(isset($_POST['_imagePost']))
{
$_useImagePost = 1;
$_imagePost = file_get_contents($_FILES['_imagePost']);
// Open DB Connection
$_conn = databaseConnect();
$_stmt = $_conn->prepare("INSERT INTO Question (Question_Type, Question_Text, Question_Answer, Question_UseImage, Question_Image) VALUES (?, ?, ?, ?, ?)");
$_stmt->bind_param("sssib", $_typePost, $_textPost, $_answerPost, $_useImagePost, $_null);
$_stmt->send_long_data(4,$_imagePost);
$_stmt->execute();
// Close DB Connection
$_conn->close();
}
我不确定的是,当输入类型是文件时,“isset($_ POST [‘_ imagePost’])”是否有效.
但是,我确信当前的设置根本不起作用.
解决方法:
你写:
$_imagePost = file_get_contents($_FILES['_imagePost']);
正确的语法是:
$_imagePost = file_get_contents($_FILES['_imagePost']['tmp_name']);
$_FILES是以下关键字的关联数组:
> [name] =>原始文件名;
> [type] =>上传文件的mimetype;
> [tmp_name] =>临时文件路径(存储上传文件的位置);
> [错误] =>错误;
> [size] =>上传文件的大小.
>查看更多关于$_FILES
标签:php,mysql,blob,mysqli
来源: https://codeday.me/bug/20191003/1849365.html