将图像文件保存在MySql中

时间:2013-10-04 12:44:16

标签: php mysql image

我是php&的新手mysql我试图将用户图像保存到MySql数据库。 我在php.net

上看到了这个解决方案
<?php
    $data = file_get_contents('path/to/image.jpg');
    $data = base64_encode($data);

    //after reading data would be like this
    $data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';

    $data = base64_decode($data);

    $im = imagecreatefromstring($data);
    if ($im !== false) {
        header('Content-Type: image/png');
        imagepng($im);
        imagedestroy($im);
    }
    else {
        echo 'An error occurred.';
    }
?>

它有效,但我没有得到如何在MySql数据库中存储'$ data'的值。我应该为我的字段采用varchar数据类型以及varchar的最大限制是什么

这是正确的方法,还是有更好的方法,如果是,那么它们是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用文字。 然后您不需要定义最大长度。因为base64编码的字符串可能很长,所以它是一个很大的图像。

另一种解决方案是存储图像路径。