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.

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

FileIFrame "Ignoring" Allowed Extensions

Go to End

4 Posts   1638 Views

Ben Gribaudo

Community Member, 181 Posts

8 April 2009 at 2:01am


How do you get FileIFrame->setAllowedExtensions() to work?

While using trunk (revision 74232) today, I noticed that even though I had a call to $fileField->setAllowedExtensions(array('pdf')); appropriately located in getCMSFields(), uploads weren't constrained to files with the pdf extension. Upon further investigation, I found that getCMSFields() is only called when the given page is loaded into the editor. Subsequent FileIFrame activity (such processing an upload) doesn't reload the entire page, meaning that getCMSFields() is not called. When uploading a file, a new FileIFrame instance is created which does not know about the call to setAllowedExtensions() in getCMSFields(). So we have a problem.

Any ideas on how to work around this?



Community Member, 244 Posts

8 April 2009 at 9:42am

It's a known bug - FileIFrameField and ImageField are currently based on a hacky Image_Uploader class that is completely decoupled from the original form (they were created before the nested controller stuff). This means that setAllowedExtensions, setMaxFileSize() and setFolderName() won't work. Permissions are a bit fudgy as well.

There's currently a couple of tickets in trac about getting this sorted - and I'm waiting for a patch of mine to fix this to be reviewed (and hopefully merged :) ).

Ben Gribaudo

Community Member, 181 Posts

9 April 2009 at 1:59am

Thanks for the info, AJ! What's your patch's ticket #?



Community Member, 79 Posts

24 February 2010 at 4:03pm

Is this issue still open? I'm finding setFolderName() and other limits are being ignored when the AJAX uploads are used with FileField and FileIFrameField. I'm using SS 2.3.4

Seems like a bit of a security hole too...?

-- Jason