Jump to content

how to create string from image?


michaellunsford

Recommended Posts

Okay, here's a fun challenge. Users are uploading files of who knows what resolution. I am resizing them in PHP, but instead of dumping them to a file on the hard drive, i want to put them in a database.

At first I thougth this was very simple, but it appears that imagejpeg, imagegif, imagepng, etc, only dumps directly to a browser or file -- it won't return the image as a string. I've also tried referring to the image pointer [code]$im=imagecreatefromstring(file_get_contents($_FILES['userfile']['tmp_name']));
... resize image ...
mysql_query("INSERT INTO `table` (`image`) VALUES ('".mysql_real_escape_string($im)."')");[/code] without success

It looks like I will need to write the image to a file, then reload the file using file_get_contents. Is there a shorter method?

Thanks!
Link to comment
https://forums.phpfreaks.com/topic/7999-how-to-create-string-from-image/
Share on other sites

The database works great if I don't resize the images (using mediumblob for the data type). The problem arises when I resize the images to 640x480. I can display or save the image to the hard drive -- but I'm having difficulty injecting it into mysql.

Once I've captured and resized the file, I could save it to the hard drive, then reopen it using file_get_contents() -- but that seems like a really long way around.

Looking for the right shortcut.

Thanks!
update:

I have applied the workaround -- which works great. PHP is now creating a temporary image in the /tmp/ folder, then reimporting it using file_get_contents. If anyone knows of a way to remove this step, they would be my hero.
[code]$im=imagecreatefromstring(file_get_contents($_FILES['userfile']['tmp_name']));
... resize image ...
imagepng($im,"/tmp/tempimage.png");
mysql_query("INSERT INTO `table` (`image`) VALUES ('".mysql_real_escape_string(file_get_contents("/tmp/tempimage.png"))."')");[/code]

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.