file_put_contents give me a specific error

2.3k Views Asked by At

I am developing a project using CodeIgniter. When I try to download an image from remote server, I get the fallowing error:

ERROR:

Message: file_put_contents(): supplied resource is not a valid stream resource

The code that causes error:

            $newImg = resizeImageFrontDimensions($uploadData, UPLOAD_DEFAULT_IMGTHUMB50, UPLOAD_DEFAULT_IMGTHUMB50);

            $imageWhiteFilled = addImageWhiteSpaces(UPLOAD_DEFAULT_IMGTHUMB50, $fileType, DIR_SCREENS . $newImg);
            file_put_contents(DIR_SCREENS, $imageWhiteFilled);

In addImageWhiteSpaces:

function addImageWhiteSpaces($imageSize, $fileType, $fileName)
{   
    switch($fileType)
    {
        case DEFAULT_IMAGE_FILETYPE_PNG:
            $image1 = imagecreatefrompng($fileName);
            break;
        case DEFAULT_IMAGE_FILETYPE_JPG:
            $image1 = imagecreatefromjpeg($fileName);
            break;
        case DEFAULT_IMAGE_FILETYPE_JPEG:
            $image1 = imagecreatefromjpeg($fileName);
            break;
        case DEFAULT_IMAGE_FILETYPE_GIF:
            $image1 = imagecreatefromgif($fileName);
            break;      
    }

    $image1_x       = imagesx($image1);
    $image1_y       = imagesy($image1);

    if($image1_x > 500 && $image1_y > 500)
        return $fileName;
    else 
    {
        switch ($imageSize) 
        {
            case  UPLOAD_DEFAULT_IMGTHUMB50: 
                $image_bg = imagecreatefrompng(PATH_MEDIA_IMG . 'white_bg_50.png');
                break;
            case  UPLOAD_DEFAULT_IMGTHUMB74:
                $image_bg = imagecreatefrompng(PATH_MEDIA_IMG . 'white_bg_74.png');
                break;
            case UPLOAD_DEFAULT_IMGTHUMB114:
                $image_bg = imagecreatefrompng(PATH_MEDIA_IMG . 'white_bg_114.png');
                break;
            case UPLOAD_DEFAULT_IMGTHUMB300:
                $image_bg = imagecreatefrompng(PATH_MEDIA_IMG . 'white_bg_300.png');
                break;
            case UPLOAD_DEFAULT_IMGTHUMB500:
                $image_bg = imagecreatefrompng(PATH_MEDIA_IMG . 'white_bg_500.png');
                break;
        }

        $image_bg_x     = imagesx($image_bg);
        $image_bg_y     = imagesy($image_bg);

        $imageStart_x   = 0;
        $imageStart_y   = 0;

        if($image_bg_y > $image1_y)
            $imageStart_y   = ($image_bg_y - $image1_y) / 2;

        if($image_bg_x > $image1_x)
            $imageStart_x   = ($image_bg_x - $image1_x) / 2;


        imagecopy($image_bg, $image1, $imageStart_x, $imageStart_y, 0, 0, $image1_x, $image1_y);

        // Output the image.
//      header("Content-type: image/png");
//      imagejpeg($image_bg);
        return $image_bg;
    }

Although I get this error, the image is being downloaded. But because it gives the error above, I download the image and can not continue to rest of the code. Any possible solution or reason is a vault for me. Many thanks.

1

There are 1 best solutions below

1
On

Since you are using codeigniter, how about this ?

http://codeigniter.com/user_guide/libraries/file_uploading.html

http://codeigniter.com/user_guide/libraries/image_lib.html

Why do you hard code something already provided by the framework you are using ?