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.

Form Questions /

loadUploaded creates record with wrong ClassName?


Reply


3 Posts   1135 Views

Avatar
_Vince

Community Member, 162 Posts

14 May 2010 at 9:33am

I'm trying to create a form, on the front end, where users can upload a logo.

I am using a SimpleImageField

$fields = new FieldSet(
.
.
.
new SimpleImageField (
$name = "LogoImageID",
$title = "Upload a logo (2Mb maximum filesize)"
)
);
.
.
.
$form = new Form($this, 'ShowProfileForm', $fields, $actions, );
return $form;
}

function btnSaveInfo($data, $form) {

$file = new File();
$file->loadUploaded($_FILES['LogoImageID']);

And that WORKS, except that the Image is saved with a ClassName of "File" rather than "Image". So it doesn't display on the template or do anything useful.

I can't find any documentation on how to set the ClassName.

When I try updating the ClassName with a DataObject::get_by_id, I get a message about backlinktracking not being supported. And anyway, it's a total kludge of a solution.

At the moment, I can get it to work by simply updating the record with a DB:query (even more of a kludge), but there's got to be a better solution.

I can't be the only guy that's noticed this problem, so I am sure I'm doing something wrong.

Any suggestions?

Avatar
Juanitou

Community Member, 323 Posts

15 May 2010 at 9:09am

Hi!

Can’t you simply use $file = new Image(); ?

Hope it helps,
Juan

Avatar
_Vince

Community Member, 162 Posts

16 May 2010 at 5:48pm

Edited: 16/05/2010 5:53pm

Oh!

Yes, that's definitely worth a try. Thanks for the suggestion! :)

Later:

Yup. It works, thanks for that. I guess I should read and adapt the documentation rather than take it literally.

Cheers!