gpt4 book ai didi

PHP MYSQL PDO BLOB上传总是空零字节

转载 作者:行者123 更新时间:2023-11-28 23:33:40 24 4
gpt4 key购买 nike

这是我的上传代码:

public function upload($id, $title, $year, $comments){
$imagedata = fopen($_FILES['up_images']['tmp_name'], 'rb');

$query = 'INSERT INTO uploads (uid, title, year, comments, image, image_name) VALUES (:uid, :title, :year, :comments, :image, :image_name)';
$statement = $this->db->prepare($query);
$statement->bindValue(':uid', $id);
$statement->bindValue(':title', $title);
$statement->bindValue(':year', $year);
$statement->bindValue(':comments', $comments);
$statement->bindValue(':image', $imagedata, PDO::PARAM_LOB);
$statement->bindValue(':image_name', $_FILES['up_images']['name']);
$statement->execute();

// return $imagedata
return $_FILES['up_images']['error'];
}

如你所见,我返回了 ERROR 和实际的图像缓冲区

错误 = 0

返回的原始缓冲区包含所有原始图像数据

我所有的参数都通过并成功上传到 MYSQL 数据库,但图像数据从未通过:这是我的 PHPmyadmin 的屏幕

enter image description here

这是表结构:

enter image description here

这是我的表格:

<form action="digest.php" method="POST" id="up_form" enctype="multipart/form-data">
<input id="up_acct" name="up_acct" type="text" placeholder="Your ID" value="<?php echo $_GET['up_acct']; ?>" />
<input id="up_title" name="up_title" type="text" placeholder=" Title" value="<?php echo $_GET['up_title']; ?>" />
<input id="up_year" name="up_year" type="text" placeholder="Year" value="<?php echo $_GET['up_year']; ?>" />
<input id="up_images" name="up_images" type="file" accept=".jpg,.jpeg,.png,.gif,.svg" />
<textarea id="up_comments" name="up_comments" placeholder="COMMENTS (optional)" cols="22" rows="5"><?php echo $_GET['up_comments']; ?></textarea>
<input type="submit" name="up_submit" id="up_submit" value="UPLOAD">

我要上传的图片大小是 80kb?

远低于我的 php.ini 设置。

我的 FILE DUMP 显示了所有有效数据,包括有效的临时目录和名称以及 EVEN SIZE!

我是否在 mysql 上遗漏了某种晦涩的配置? PHP?

另外 - 我无法存储文件路径名称并从文件系统中检索 - 更大项目的一部分

最佳答案

查看 documentation page对于 PDO::PARAM_LOB -- bindParam(不是 bindValue)需要一个文件指针,而不是文件的内容。

$imagedata = fopen($_FILES['up_images']['tmp_name'], 'rb');
$statement->bindParam(':image', $imagedata, PDO::PARAM_LOB);

正如您所提到的,通常不认为将图像存储在数据库中是一种好的做法,除非有非常明确的理由这样做,而且缺点也很容易理解。如果您不是 100% 确定它是必要的,它可能不是。

关于PHP MYSQL PDO BLOB上传总是空零字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36466892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com