John Schinnerer wrote:
Hello,
I need to test form data passed in REQUEST to see if there is or is not a file specified to upload. The form element is
<input type="file" name="image_file" size="35" value="" />
I tried testing for an empty field like with string and text variables, like so:
if REQUEST.image_file != '':
But that always seemed to be true even when I left the form field blank. So I lookd at REQUEST and it shows this:
image_file <ZPublisher.HTTPRequest.FileUpload instance at 0x89ef9d4>
That's new to me... How do I reference the string in that field to test if it's empty or not, *or* do some equivalent test that tells me there is or is not a file specified to upload?
Thanks, John S.
__________________________________ Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. http://taxes.yahoo.com/filing.html
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Here is the file_edit.py script from plone that shows how to do it HTH Robert ## Controller Python Script "file_edit" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind state=state ##bind subpath=traverse_subpath ##parameters=precondition='', file='', id='', title=None, description=None, file_data='' ##title=Edit a file ## from StringIO import StringIO original_id=context.getId() filename=getattr(file,'filename', '') if file and filename and context.isIDAutoGenerated(original_id): # if there is no id or an autogenerated id, use the filename as the id # if not id or context.isIDAutoGenerated(id): # if there is no id, use the filename as the id if not id: id = filename[max( string.rfind(filename, '/') , string.rfind(filename, '\\') , string.rfind(filename, ':') )+1:] if file and hasattr(file, 'seek'): file.seek(0) # if there is no id specified, keep the current one if not id: id = context.getId() if not file and file_data: file=StringIO(file_data) new_context = context.portal_factory.doCreate(context, id) new_context.plone_utils.contentEdit( new_context , id=id , title=title , description=description ) new_context.edit( precondition=precondition, file=file ) from Products.CMFPlone import transaction_note transaction_note('Edited file %s at %s' % (new_context.title_or_id(), new_context.absolute_url())) return state.set(context=new_context, portal_status_message='File changes saved.')