Skip to content
Advertisement

$_FILES to a resource – Laravel 5 and Dropbox

Well, I’ve uploaded an app to Heroku, and I’ve discovered that I can’t upload files to it. Then I started to use Dropbox as storage option, and I’ve done a few tests, of send and retrieve link, and all worked fine.

Now, the problem is to use the uploadFile() method on DropboxAdapter. He accepts an resource as the file, and I did’nt work well. I’ve done a few tests, and still no way. Here is what I am doing, if anyone could me point a solution, or a direction to this problem, please. 🙂

Here is my actual code for the update user (Update the user image, and get the link to the file).

        $input = $_FILES['picture'];
        $inputName = $input['name'];
        $image = imagecreatefromstring(file_get_contents($_FILES['picture']['tmp_name']));

        Storage::disk('dropbox')->putStream('/avatars/' . $inputName, $image);

        // $data = Storage::disk('dropbox')->getLink('/avatars/' . $inputName);


        return dd($image);

In some tests, using fopen() into a file on the disk, and doing the same process, I’ve noticed this:

This is when I’ve used fopen() on a file stored on the public folder

http://i.imgur.com/07ZiZD5.png

And this, when i’ve die(var_dump()) the $image that I’ve tried to create. (Which is a suggestion from this two links: PHP temporary file upload not valid Image resource, Dropbox uploading within script.

http://i.imgur.com/pSv6l1k.png

Any Idea?

Advertisement

Answer

Try a simple fopen on the uploaded file:

$image = fopen($_FILES['picture']['tmp_name'], 'r');

https://www.php.net/manual/en/function.fopen.php

You don’t need an image stream but just a filestream, which fopen provides.

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement