Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I upload an image from a URL in PHP

In PHP using GD or imagemagick how can I uplaod a photo from a URL, I want to build a function that I can pass in a few parameters and uplaod the image, I can currentyl uplaod a big image, resize it smaller, then resize some more thumbnails off it and save all into there locations from 1 image but I would like to add the ability to get an image from a URL and then run my code on it to resize and make thumbs.

Would I use curl or something else any example or ideas would be greatly appreciated

like image 608
JasonDavis Avatar asked Jan 05 '10 03:01

JasonDavis


People also ask

Can we do images using PHP?

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including GIF , PNG , JPEG , WBMP , and XPM . Even more conveniently, PHP can output image streams directly to a browser.


2 Answers

$image = @ImageCreateFromString(@file_get_contents($imageURL));

if (is_resource($image) === true)
{
    // image is valid, do your magic here
}

else
{
    // not a valid image, show error
}

The @ on both functions are there to prevent PHP from throwing errors if the URL is not a valid image.

like image 93
Alix Axel Avatar answered Oct 17 '22 05:10

Alix Axel


Depending on your PHP configuration, fopen may or may not allow for it directly: http://php.net/manual/en/function.fopen.php

Alternatively, you can open a socket (http://php.net/manual/en/book.sockets.php) and write / read HTTP (http://www.faqs.org/rfcs/rfc2616.html) directly. I wouldn't use curl unless you're VERY careful about permissions (especially execute), or can guarantee noone malicious will have access to the tool, as you'll effectively open a potential avenue of attack (well, strictly speaking, you already are, but this has a few different ways it can be abused)

like image 44
James Avatar answered Oct 17 '22 05:10

James