I am working on a folderish Zclass for encapsulating various incarnations of the same image. For example, instances of this class might contain a thumbnail, jpegs or gifs at different resolutions, and maybe even a postscript copy. To this end, I have created a DImageProduct Product, added a DImage Zclass derived from the ObjectManager which can only contain images and files, added title, caption, default width and height attributes, etc. I have modified the default DImageClass_addForm method so that title, caption and a default image can be specified when DImage objects are added. My addForm method has the following entry in the form: <INPUT TYPE="file" NAME="file" SIZE="25" VALUE=""> Therefore, in the DImage constructor (DImageClass_add method) I have added the following code in an attempt to conditionally create a default_image if a file was specified: <!--#with "DImageClass.createInObjectManager(REQUEST['id'], REQUEST)"--> <dtml-call "REQUEST.set('current_date', ZopeTime())"> <dtml-call "REQUEST.set('date', current_date )"> <dtml-call "propertysheets.DImageProperties.manage_editProperties(REQUEST)"> <dtml-if file> <dtml-call "manage_addImage('default_image', file, '')"> </dtml-if> <!--#/with--> This does create an Image object but the content is of type "plain/text" and the size is only 30 bytes (suspiciously close to the string length of the file specifier). Is it necessary to create the image object *and* upload the image data in two separate calls? Presumably "file" in the addImage method above contains the data stream but I cannot figure out how to access it (manage_upload(file) doesn't work). Any help is much appreciated. Cheers, Darran. -- Darran Edmundson [Darran.Edmundson@anu.edu.au]