将PNG图像保存到mysql数据库的问题

时间:2015-06-17 19:27:41

标签: php mysql database image

我无法使用此脚本存储 .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);          
}

1 个答案:

答案 0 :(得分:0)

更改此行

$fp = fopen($tmpName, 'r');

$fp = fopen($tmpName, 'rb');

或尝试使用

file_get_contents()

并检查。