我无法使用此脚本存储 .png 图像。它存储.jpeg图像,但未成功存储.png。问题是 .png 仅存储了图片的一半。数据库中的图像字段是blob类型。
当在我的本地 xampp 安装上进行测试时,可以说它存储了图片的 90%,但是当我在 Hostgator 托管域上尝试它时,它可以存储了图片的 45%
不要认为图像大于数据库中的图像列,因为我存储了更大的 .jpeg 图像...
static function save($_FILES) {
$link = mysql_connect("localhost",DBUSER,DBPASS) or die("<b>Error:</b><br>".mysql_error());
mysql_select_db(DBNAME,$link) or die("Cant select db");
$tmpName = $_FILES['image']['tmp_name'];
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
$sql = "INSERT INTO image
(type, image, size, name)
VALUES ('" . mysql_real_escape_string($_FILES['image']['type']) . "', '" . $data . "', '" . $_FILES['image']['size'] . "', '" . mysql_real_escape_string($_FILES['image']['name']) . "')";
mysql_query($sql);
}
最佳答案
更改此行
$fp = fopen($tmpName, 'r');
到
$fp = fopen($tmpName, 'rb');
或者尝试使用
file_get_contents()
并检查。
关于php - 将 PNG 图像保存到 mysql 数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900673/