Stephan-v
Stephan-v

Reputation: 20289

Laravel wrong public path file upload

I've deployed laravel with this guide.

http://juniorgrossi.com/deploying-laravel-applications-on-a-shared-host/

On my webserver I have a public_html file now containing all my publicly accesable files and a laravel folder containing the rest, so I've split up the default laravel structure for deployment.

On my development server by default the public folder is resting inside the laravel folder instead of being on the same directory level.

The problem I'm getting though is when I use something like this:

// Upload the file
Input::upload('image', 'public/uploads', $filename);

Same with this.

// Upload the file
Input::upload('image', path('public') . 'uploads', $filename);

Instead of trying to use the uploads folder that is inside my public_html folder it tries looking for a public file inside my laravel folder now.

And I get a

Unable to create the "/uploads" directory

Ofcourse on my development server the public folder is still inside the folder so it's logical.

How do I fix this?

Upvotes: 3

Views: 6558

Answers (5)

Dennis Braga
Dennis Braga

Reputation: 1478

In my case, I got the same problem. Then I created it manually, CHMODed the lil' bastard and it worked fine!

Making a long history short (not so long...): just permission!

If you have the permission to Write/Read to the folder, you'll be cool! If you don't, you change the permissions! If you are unable to change it, put the uploaded files where the permissions allows you to access the file.

Upvotes: 0

Stephan-v
Stephan-v

Reputation: 20289

Fixed the paths.php to ../public_html

I've done this before but it failed since I accidentaly uploaded a png and my jcrop function wich crops and saves images failed because it currently onlt takes jpg. So that left me thinking my paths.php settings were no good while they actually were.

Thanks for helping out though everybody! (I feel like a fool.)

Upvotes: 0

Melvin
Melvin

Reputation: 5998

You can also try Intervention/image package. I'm using this and I find it very easy to use. It also has a resize and crop feature.

It's easy as:

Image::make(Input::file('file')->getRealPath())->save('uploads/' . $filename);

Upvotes: 0

Kylie
Kylie

Reputation: 11749

Maybe try this....just as a test

Input::upload('image', URL::to_asset('uploads/'), $filename);

Upvotes: 1

The Alpha
The Alpha

Reputation: 146191

You may try this (add a slash after the folder name)

Input::upload('image', path('public') . 'uploads/', $filename);

Upvotes: 1

Related Questions