Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Cannot set custom folder for ImageField


Go to End


17 Posts   8437 Views

Avatar
blair

Community Member, 9 Posts

21 July 2009 at 4:40pm

I have created an Image Field in a HasManyComplexTable popup using the following code:

new ImageField('Photo', null, null, null, null, "PictureGallery")

I have attached an image that helps show what the form looks like.

The problem is that the images uploaded always get saved to 'Uploads' and not the folder I have specified. I inserted a Debug::backtrace() command into the Upload->load(..) method and got the following output from the CMS:

* Upload->load(Array,)
Line 152 of Upload.php
* Upload->loadIntoFile(Array,Object id #57)
Line 226 of File.php
* File->loadUploaded(Array)
Line 123 of Image.php
* Image->loadUploaded(Array)
Line 748 of Image.php
* Image_Uploader->save(Array,Object id #33,Object id #8)
Line 241 of Form.php
* Form->httpSubmission(Object id #8)
Line 129 of RequestHandler.php
* RequestHandler->handleRequest(Object id #8)
Line 143 of RequestHandler.php
* RequestHandler->handleRequest(Object id #8)
Line 122 of Controller.php
* Controller->handleRequest(Object id #8)
Line 277 of Director.php
* Director::handleRequest(Object id #8,Session)
Line 121 of Director.php
* Director::direct(/images/index/PictureGalleryItem/8/Photo/EditImageForm)
Line 118 of main.php

As you can see on the first line, the folder path I specified is not being passed into the method. When I look in File.php at the File->loadUploaded(..) method it says that it is deprecated, which seems like it could be the problem.

Unfortunately, I don't know enough about SS internals to figure out any more from this. Perhaps someone with more expertise could shed some light on this?

Any help with getting this working correctly would be much appreciated - I'd rather not have all my images being sent to the Uploads folder.

Attached Files
Avatar
ChrisBryer

Community Member, 95 Posts

23 July 2009 at 2:19am

this may help:

http://api.silverstripe.com/forms/fields-files/FileField.html#var$folderName

i think this example should work, but never tried:


$img = new ImageField('MyImage', 'Please Select an Image');
$img -> folderName  =  'HomePageImages';    //THIS IS RELATIVE TO UPLOADS
$fields -> addFieldToTab('Root.Content.Image', $img);

Avatar
blair

Community Member, 9 Posts

23 July 2009 at 9:18am

Thanks for that, but unfortunately it still places the image in the 'Uploads' folder.

Avatar
quamsta

Community Member, 29 Posts

29 July 2009 at 2:36am

I'm having the same issue. I can't set the upload directory for ImageField no matter what I do.

Avatar
blair

Community Member, 9 Posts

29 July 2009 at 9:09am

I tried it in a daily build from a couple of weeks ago and it works, so here's hoping 2.3.3 fixes it.

Avatar
freenet

Community Member, 22 Posts

18 August 2009 at 8:50am

I'm using 2.3.3, but problem persists.
Any ideas?

Avatar
blair

Community Member, 9 Posts

18 August 2009 at 9:26am

It has already been fixed in the daily builds - I'm talking with SS at the moment to find out why it wasn't in 2.3.3.

Hopefully it will be in the next release.

Avatar
freenet

Community Member, 22 Posts

18 August 2009 at 9:35am

thx answer....
Need just wait and hope -_-

Go to Top