22400 Posts in 6746 Topics by 2749 members
|Go to End|
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?
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 ).
9 April 2009 at 1:59am
Thanks for the info, AJ! What's your patch's ticket #?
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...?
|Go to Top|