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're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Mysterious Upload Directory

Go to End

3 Posts   1297 Views


Community Member, 26 Posts

16 December 2009 at 3:48am

Got a annoying problem by writing files using onBeforeWrite into an specific custom upload folder. I have searched the forum and found some related topics, but none solved the problem i have. This is my class:

class ArticleItems extends DataObject

static $db = array (
"Description" => "HTMLText",
"ItemType" => "Varchar(50)"

static $has_one = array (
"Page" => "Page",
"ImageThumbnailFile" => "Image"

protected static $itemTypes = array(
"IMAGE" => "Image"

public function getCMSFields_forPopup()
return new FieldSet(
new DropdownField( "ItemType", "Type of Item", self::$itemTypes ),
new TextareaField( "Description", "Description" ),
new ImageField( "ImageThumbnailFile", "Thumbnail" ),
new FileIFrameField( "DownloadFile", "File for Download" )

public function onBeforeWrite()

$file = $this->ImageThumbnailFile;
$folder = Folder::findOrMake( "Uploads/articles/images" );
if($file && $folder){
if($folder->ID != $file->ParentID){


If I uplaod the file, it always stores it in the "Uploads/" Directory. My goal is to resize the image and save the thumbnail in "Uploads/articles/images/thumbnails/". The full sized image should be stored in "Uploads/articles/images" and linked to the Item (not set yet). Has anyone an idea of how to do this? Any idea my help...


Forum Moderator, 4102 Posts

16 December 2009 at 4:08am

I don't see any reason why you couldn't just use setUploadFolder("Uploads/articles/images") on your DOM.


Community Member, 26 Posts

22 December 2009 at 9:39pm

I would like to create three images from the one i upload. This is the reason why i want to set the upload folder for each image. I need a colored thumbnail, a greyscakled thumbnail and an fullsized colored image by maxwidth of 600px. I think it should work with the gd lib. But maybe its better to create an extra class extending the image class with a bunch of methods.

Do you know any examples on writing files, copying files within silverstripe?

And, coming back to your question, where do i set the setUploadFolder?