1

我曾尝试将图像下载到一个目录,但现在我想通过不使用文件选择器将图像保存到使用 BLOB 类型的数据库中。我的意思是直接从 URL 保存图像:

说:

http://someserver.com/images/imageone.gif

如何将其直接保存到数据库?在保存到数据库之前我必须先下载它吗?请帮我..

4

2 回答 2

4

就像你会保存任何其他数据一样。

$imageContents = file_get_contents('http://someserver.com/images/imageone.gif');
$imageContentsEscaped = mysql_real_escape_string($imageContents, $link);
mysql_query("INSERT INTO table_name (imageData) VALUES ('$imageContentsEscaped')", $link);

确保要将图像数据保存到的列设置为二进制类型,例如 BLOB。

于 2012-06-21T13:06:02.503 回答
1
// download image to memory
$image = file_get_contents('http://example.com/my/image.jpg');

// open PDO connection
$db = ...;

// insert downloaded data to the DB
$sql = 'insert into my_table(filename, content) values (?,?)';
$stmt = $db->prepare($sql);
$stmt->bindParam(1, 'my/image.jpg');
$stmt->bindParam(2, $image, PDO::PARAM_LOB);
$stmt->execute();
于 2012-06-21T13:17:33.890 回答