Joshxtothe4 Joshxtothe4 - 6 months ago 12
PHP Question

error clause for file_put_contents

I am using this line to obtain and save an image from a URL.

file_put_contents("./images/".$pk.".jpg", file_get_contents($PIC_URL))


I am unsure what the best way to deal with an error is. At the moment it is failing because there is no permission, which will be remedied shortly, but I would like it to be able to deal with situations where PIC_URL is empty or not an image. Should I dead with the error at this level(probably it is better for permission related things) or should I check higher up if PIC_URL is empty, or both?

Which is the best approach?

Answer

I'm not talented enough to claim this is the best method, but I would just test along the way:

$imageDir = "/path/to/images/dir/";
$imagePath = "$imageDir$pk.jpg";
if (!is_dir($imageDir) or !is_writable($imageDir)) {
    // Error if directory doesn't exist or isn't writable.
} elseif (is_file($imagePath) and !is_writable($imagePath)) {
    // Error if the file exists and isn't writable.
}

$image = file_get_contents(urlencode($PIC_URL));
if (empty($image)) {
    // Error if the image is empty/not accessible.
    exit;
}

file_put_contents($imagePath, $image);
Comments