def CreateFolder(currentFolder, folderName ): user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = portal.restrictedTraverse(currentFolder.lstrip('/')) else : obj = portal sErrorNumber="" # error cases if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): sErrorNumber = "103" sErrorDescription = "folder creation forbidden" if obj.meta_type in pa_meta_types : sErrorNumber = "103" sErrorDescription = "folder creation forbidden" if not folderName: sErrorNumber = "102" sErrorDescription = "invalid folder name" if not sErrorNumber : try : folderTitle=utf8Decode(folderName) folderName = fckCreateValidZopeId(utf8Encode(folderTitle)) new_id = obj.invokeFactory(id=folderName, type_name=folder_portal_type, title=folderTitle) sErrorNumber = "0" sErrorDescription = "success" except : sErrorNumber = "103" sErrorDescription = "folder creation forbidden" return CreateXmlErrorNode(sErrorNumber,sErrorDescription)
def CreateFolder(currentFolder, folderName): user = context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/": obj = context.restrictedTraverse(currentFolder.lstrip('/')) else: obj = context.portal_url.getPortalObject() sErrorNumber = "" # error cases if not user.has_permission('Add portal content', obj) and not user.has_permission( 'Modify portal content', obj): sErrorNumber = "103" sErrorDescription = "folder creation forbidden" if not folderName: sErrorNumber = "102" sErrorDescription = "invalid folder name" if not sErrorNumber: try: folderTitle = utf8Decode(folderName) folderName = fckCreateValidZopeId(utf8Encode(folderName)) new_id = obj.invokeFactory(id=folderName, type_name='Folder', title=folderTitle) sErrorNumber = "0" sErrorDescription = "success" except: sErrorNumber = "103" sErrorDescription = "folder creation forbidden" return CreateXmlErrorNode(sErrorNumber, sErrorDescription)
def UploadFile(resourceType, currentFolder, data, title): user = context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/": obj = context.restrictedTraverse(currentFolder.lstrip('/')) else: obj = context.portal_url.getPortalObject() error = "" idObj = "" if obj.meta_type != 'PloneArticle': # define Portal Type to add if resourceType == 'File': typeToAdd = file_portal_type elif resourceType == 'Flash': typeToAdd = flash_portal_type elif resourceType == 'Image': if obj.meta_type == "CMF ZPhotoSlides": typeToAdd = 'ZPhoto' elif obj.meta_type == "Photo Album": typeToAdd = 'Photo' elif obj.meta_type == "ATPhotoAlbum": typeToAdd = 'ATPhoto' else: typeToAdd = image_portal_type if not user.has_permission('Add portal content', obj) and not user.has_permission( 'Modify portal content', obj): error = "103" if resourceType == 'Image' and not allow_image_upload: error = "103" if resourceType == 'Flash' and not allow_flash_upload: error = "103" if resourceType not in ('Flash', 'Image') and not allow_file_upload: error = "103" if not data: #pas de fichier error = "202" titre_data = '' filename = utf8Decode(getattr(data, 'filename', '')) titre_data = filename[max( string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), ) + 1:] idObj = fckCreateValidZopeId(utf8Encode(titre_data)) if title: titre_data = title if not IsAllowedExt(FindExtension(idObj), resourceType): error = "202" if not error: error = "0" indice = 0 exemple_titre = idObj while exemple_titre in obj.objectIds(): indice = indice + 1 exemple_titre = str(indice) + idObj if indice != 0: error = "201" idObj = exemple_titre try: obj.invokeFactory(id=idObj, type_name=typeToAdd, title=titre_data) newFile = getattr(obj, idObj) newFile.edit(file=data) obj.reindexObject() except: error = "103" #Plone Article treatment else: # find Plone Article version try: image_brains = obj.getImageBrains() attachment_brains = obj.getAttachmentBrains() versionPA = 3 except: versionPA = 2 if not data: #pas de fichier error = "1" customMsg = "no file uploaded" else: filename = utf8Decode(getattr(data, 'filename', '')) titre_data = filename[max( string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), ) + 1:] # idObj can't be cleaned with PloneArticle attachements # it's a problem but we do the job idObj = fckCreateValidZopeId(utf8Encode(titre_data)) if title: titre_data = title if resourceType == 'Image': # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_image_upload: error = "103" elif not IsAllowedExt(FindExtension(idObj), resourceType): error = "202" customMsg = "Invalid file type" elif obj.portal_article.checkImageSize(data): if versionPA == 2: obj.appendImage( titre_data, data, ) else: obj.addImage(title=titre_data, description='', image=data) error = "0" try: obj.reindexObject() except: parent = obj.aq_parent parent.reindexObject() else: error = "104" else: # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_file_upload: error = "103" elif not IsAllowedExt(FindExtension(idObj), resourceType): error = "202" customMsg = "Invalid file type" elif obj.portal_article.checkAttachmentSize(data): if versionPA == 2: obj.appendAttachment( titre_data, data, ) else: obj.addAttachment(title=titre_data, description='', file=data) error = "0" try: obj.reindexObject() except: parent = obj.aq_parent parent.reindexObject() else: error = "104" d = ''' <script type="text/javascript"> window.parent.frames['frmUpload'].OnUploadCompleted(%s,"%s") ; </script> ''' % (error, idObj) return d
def UploadFile(resourceType, currentFolder, data, title): user = context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/": obj = context.restrictedTraverse(currentFolder.lstrip('/')) else: obj = context.portal_url.getPortalObject() error = "" idObj = "" # define Portal Type to add if resourceType == 'Flash': typeToAdd = 'Flash Animation' elif resourceType in ('File', 'Flash', 'Media'): typeToAdd = 'File' elif resourceType == 'Image': typeToAdd = 'Image' if not user.has_permission('Add portal content', obj) and not user.has_permission( 'Modify portal content', obj): error = "103" if not data: #pas de fichier error = "202" titre_data = '' filename = utf8Decode(getattr(data, 'filename', '')) titre_data = filename[max( string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), ) + 1:] idObj = fckCreateValidZopeId(utf8Encode(titre_data)) if title: titre_data = title if not IsAllowedExt(FindExtension(idObj), resourceType): error = "202" if not error: error = "0" indice = 0 exemple_titre = idObj while exemple_titre in obj.objectIds(): indice = indice + 1 exemple_titre = str(indice) + idObj if indice != 0: error = "201" idObj = exemple_titre try: # this method need to be changed for browser refresh # because it send 302 redirection : we need no http response request = context.REQUEST request.form.update({ 'widget__preview': data, 'widget__preview_choice': 'change', 'type_name': typeToAdd, 'widget__Title': titre_data, 'cpsdocument_create_button': 1, 'widget__LanguageSelectorCreation': 'fr' }) ti = context.portal_types[typeToAdd] res = ti.renderCreateObjectDetailed( container=obj, request=request, validate=1, layout_mode='create', create_callback='createCPSDocument_cb', created_callback='cpsdocument_created') #context.createCPSDocument(context=obj,REQUEST=request) obj.reindexObject() except Exception, e: error = "103"
def UploadFile(resourceType, currentFolder, data, title) : user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = portal.restrictedTraverse(currentFolder.lstrip('/')) else : obj = portal error="" idObj="" if obj.meta_type not in pa_meta_types: # define Portal Type to add if resourceType == 'File': if obj.meta_type in rd_portal_types : typeToAdd = 'FileAttachment' else: typeToAdd = file_portal_type elif resourceType == 'Flash': typeToAdd = flash_portal_type elif resourceType == 'Image' : if obj.meta_type=="CMF ZPhotoSlides": typeToAdd = 'ZPhoto' elif obj.meta_type=="Photo Album": typeToAdd = 'Photo' elif obj.meta_type=="ATPhotoAlbum": typeToAdd = 'ATPhoto' elif obj.meta_type in rd_portal_types : typeToAdd = 'ImageAttachment' else: typeToAdd = image_portal_type if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): error = "103" if resourceType == 'Image' and not allow_image_upload: error = "103" if resourceType == 'Flash' and not allow_flash_upload: error = "103" if resourceType not in ('Flash','Image') and not allow_file_upload: error = "103" if not data: #pas de fichier error= "202" titre_data='' filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" if not error : error="0" indice=0 exemple_titre=idObj while exemple_titre in obj.objectIds(): indice=indice+1 exemple_titre=str(indice) + idObj if indice!=0: error= "201" idObj = exemple_titre try: obj.invokeFactory(id=idObj, type_name=typeToAdd, title=titre_data ) newFile = getattr(obj, idObj) newFile.edit(file=data) except: error = "103" #Plone Article treatment else : if hasattr(obj.aq_explicit,'getImageBrains'): versionPA=3 elif hasattr(obj.aq_explicit,'getImages') : versionPA=4 else: error="103" if not data: #pas de fichier error= "1" customMsg="no file uploaded" if not error : filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if resourceType == 'Image' : # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_image_upload: error = "103" elif not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" else : if versionPA==3 : if obj.portal_article.checkImageSize(data): obj.addImage(title=titre_data, description='', image=data) error="0" else: error="104" else : # PA bontang treatment # get size and check against max allowed size data.seek(0, 2) size = data.tell() data.seek(0) max_size = obj.getTypeInfo().getProperty('imageMaxSize', None) if max_size is not None and size > max_size : error='104' else : images = obj.getImages() imgIds =[img.getId() for img in images] unikId = idObj i=0 while unikId in imgIds : i = i+1 unikId = str(i) + idObj new_value = { "attachedImage": (data, {}), "title": (titre_data, {}), "description": ('', {}), "id": (unikId, {}), } if images: images.append(new_value) else: images=[new_value] obj.setImages (images) error='0' else: # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_file_upload: error = "103" elif not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" else : if versionPA==3 : if obj.portal_article.checkAttachmentSize(data): obj.addAttachment(title=titre_data, description='', file=data) error="0" else: error="104" else : # PA bontang treatment # get size and check against max allowed size data.seek(0, 2) size = data.tell() data.seek(0) max_size = obj.getTypeInfo().getProperty('attachmentMaxSize', None) if max_size is not None and size > max_size : error='104' else : files = obj.getFiles() fileIds =[f.getId() for f in files] unikId = idObj i=0 while unikId in fileIds : i = i+1 unikId = str(i) + idObj new_value = { "attachedFile": (data, {}), "title": (titre_data, {}), "description": ('', {}), "id": (unikId, {}), } if files: files.append(new_value) else: files=[new_value] obj.setFiles (files) error= '0' d= ''' <script type="text/javascript"> window.parent.frames['frmUpload'].OnUploadCompleted(%s,"%s") ; </script> '''% (error,idObj) return d
def UploadFile(resourceType, currentFolder, data, title) : user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = context.restrictedTraverse(currentFolder.lstrip('/')) else : obj = context.portal_url.getPortalObject() error="" idObj="" if obj.meta_type != 'PloneArticle': # define Portal Type to add if resourceType == 'File': typeToAdd = file_portal_type elif resourceType == 'Flash': typeToAdd = flash_portal_type elif resourceType == 'Image' : if obj.meta_type=="CMF ZPhotoSlides": typeToAdd = 'ZPhoto' elif obj.meta_type=="Photo Album": typeToAdd = 'Photo' elif obj.meta_type=="ATPhotoAlbum": typeToAdd = 'ATPhoto' else: typeToAdd = image_portal_type if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): error = "103" if resourceType == 'Image' and not allow_image_upload: error = "103" if resourceType == 'Flash' and not allow_flash_upload: error = "103" if resourceType not in ('Flash','Image') and not allow_file_upload: error = "103" if not data: #pas de fichier error= "202" titre_data='' filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" if not error : error="0" indice=0 exemple_titre=idObj while exemple_titre in obj.objectIds(): indice=indice+1 exemple_titre=str(indice) + idObj if indice!=0: error= "201" idObj = exemple_titre try: obj.invokeFactory(id=idObj, type_name=typeToAdd, title=titre_data ) newFile = getattr(obj, idObj) newFile.edit(file=data) obj.reindexObject() except: error = "103" #Plone Article treatment else : # find Plone Article version try : image_brains = obj.getImageBrains() attachment_brains = obj.getAttachmentBrains() versionPA=3 except: versionPA=2 if not data: #pas de fichier error= "1" customMsg="no file uploaded" else : filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] # idObj can't be cleaned with PloneArticle attachements # it's a problem but we do the job idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if resourceType == 'Image' : # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_image_upload: error = "103" elif not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" elif obj.portal_article.checkImageSize(data): if versionPA==2 : obj.appendImage(titre_data, data, ) else : obj.addImage(title=titre_data, description='', image=data) error="0" try: obj.reindexObject() except: parent = obj.aq_parent parent.reindexObject() else: error="104" else: # Upload file if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_file_upload: error = "103" elif not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" elif obj.portal_article.checkAttachmentSize(data): if versionPA==2 : obj.appendAttachment(titre_data, data, ) else : obj.addAttachment(title=titre_data, description='', file=data) error="0" try: obj.reindexObject() except: parent = obj.aq_parent parent.reindexObject() else: error="104" d= ''' <script type="text/javascript"> window.parent.frames['frmUpload'].OnUploadCompleted(%s,"%s") ; </script> '''% (error,idObj) return d
def UploadFile(resourceType, currentFolder, data, title) : user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = context.restrictedTraverse(currentFolder.lstrip('/')) else : obj = context.portal_url.getPortalObject() error="" idObj="" # define Portal Type to add if resourceType == 'Flash': typeToAdd='Flash Animation' elif resourceType in ('File', 'Flash', 'Media'): typeToAdd = 'File' elif resourceType == 'Image' : typeToAdd='Image' if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): error = "103" if not data: #pas de fichier error= "202" titre_data='' filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" if not error : error="0" indice=0 exemple_titre=idObj while exemple_titre in obj.objectIds(): indice=indice+1 exemple_titre=str(indice) + idObj if indice!=0: error= "201" idObj = exemple_titre try: # this method need to be changed for browser refresh # because it send 302 redirection : we need no http response request=context.REQUEST request.form.update({'widget__preview':data,'widget__preview_choice':'change','type_name':typeToAdd,'widget__Title':titre_data, 'cpsdocument_create_button':1,'widget__LanguageSelectorCreation':'fr'}) ti=context.portal_types[typeToAdd] res = ti.renderCreateObjectDetailed(container=obj, request=request, validate=1, layout_mode='create', create_callback='createCPSDocument_cb', created_callback='cpsdocument_created') #context.createCPSDocument(context=obj,REQUEST=request) obj.reindexObject() except Exception , e : error = "103"
def UploadFile(resourceType, currentFolder, data, title) : user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = browser_root.restrictedTraverse(currentFolder.lstrip('/')) else : obj = browser_root error="" idObj="" if obj.meta_type not in pa_meta_types: # define Portal Type to add # TODO portal_type for Media Resource Type in FCK control panel if resourceType in ('File', 'Media'): if obj.meta_type in rd_portal_types : typeToAdd = 'FileAttachment' else: typeToAdd = file_portal_type elif resourceType == 'Flash': typeToAdd = flash_portal_type elif resourceType == 'Image' : if obj.meta_type=="CMF ZPhotoSlides": typeToAdd = 'ZPhoto' elif obj.meta_type=="Photo Album": typeToAdd = 'Photo' elif obj.meta_type=="ATPhotoAlbum": typeToAdd = 'ATPhoto' elif obj.meta_type in rd_portal_types : typeToAdd = 'ImageAttachment' else: typeToAdd = image_portal_type if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): error = "103" if resourceType == 'Image' and not allow_image_upload: error = "103" if resourceType == 'Flash' and not allow_flash_upload: error = "103" if resourceType not in ('Flash','Image') and not allow_file_upload: error = "103" if not data: #pas de fichier error= "202" titre_data='' filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" if not error : error="0" indice=0 exemple_titre=idObj while exemple_titre in obj.objectIds(): indice=indice+1 exemple_titre=str(indice) + idObj if indice!=0: error= "201" idObj = exemple_titre try: obj.invokeFactory(id=idObj, type_name=typeToAdd, title=titre_data ) newFile = getattr(obj, idObj) newFile.edit(file=data) except: error = "103" # upload is no more allowed in articles # because in Plone3 it becames really complicated to # upload contents inside context during edition # it's impossible when using portal_factory # it's impossible when using standard edition forms # MULTIPAGE schema is responsible (all forms in hidden fieldsets ...) else : error = "103" customMsg = "USE PloneArticle forms to add content inside articles" d= ''' <script type="text/javascript"> window.parent.frames['frmUpload'].OnUploadCompleted(%s,"%s") ; </script> '''% (error,idObj) return d
def UploadFile(resourceType, currentFolder, data, title, description, thumbsize ) : user=context.REQUEST['AUTHENTICATED_USER'] if currentFolder != "/" : obj = browser_root.restrictedTraverse(currentFolder.lstrip('/')) else : obj = browser_root error="" fileUrl="" customMsg="" idObj="" folderUrl=GetUrlFromPath(currentFolder)+ "/" smallSizeUrl = '' mediumSizeUrl = '' if (obj.meta_type not in pa_meta_types and obj.portal_type not in rd_portal_types): # define Portal Type to add # TODO portal_type for Media Resource Type in FCK control panel if resourceType in ('File', 'Media'): typeToAdd = file_portal_type elif resourceType == 'Flash': typeToAdd = flash_portal_type elif resourceType == 'Image' : if obj.meta_type=="CMF ZPhotoSlides": typeToAdd = 'ZPhoto' elif obj.meta_type=="Photo Album": typeToAdd = 'Photo' elif obj.meta_type=="ATPhotoAlbum": typeToAdd = 'ATPhoto' else: typeToAdd = image_portal_type smallSizeUrl = '/image_thumb' mediumSizeUrl = '/image_preview' if not user.has_permission('Add portal content', obj) and not user.has_permission('Modify portal content', obj): error = "1" customMsg="upload denied - insufficient privileges" if resourceType == 'Image' and not allow_image_upload: error = "1" customMsg="image upload denied - contact your site admin" if resourceType == 'Flash' and not allow_flash_upload: error = "1" customMsg="flash upload denied - contact your site admin" if resourceType not in ('Flash','Image') and not allow_file_upload: error = "1" customMsg="file upload denied - contact your site admin" if not data: #pas de fichier error= "1" customMsg="no file uploaded" titre_data='' filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" if not error : error="0" indice=0 exemple_titre=idObj while exemple_titre in obj.objectIds(): indice=indice+1 exemple_titre=str(indice) + idObj if indice!=0: error= "201" idObj = exemple_titre customMsg="an object already exists with the same name, the file has been renamed " + idObj try: obj.invokeFactory(id=idObj, type_name=typeToAdd, title=titre_data ) newFile = getattr(obj, idObj) newFile.edit(file=data) newFile.setDescription(description) if linkbyuid and hasattr(newFile.aq_explicit, 'UID'): uid = newFile.UID() fileUrl = "./resolveuid/" + uid else : fileUrl = folderUrl + idObj except: error = "1" customMsg = "Server error" # upload is no more allowed in articles # because in Plone3 it becames really complicated to # upload contents inside context during edition # it's impossible when using portal_factory # it's impossible when using standard edition forms # MULTIPAGE schema is responsible (all forms are in hidden fieldsets ...) elif obj.meta_type in pa_meta_types: error= "103" customMsg="Upload is not allowed in articles, use standard PloneArticle forms" elif obj.portal_type in rd_portal_types: if not data: error="1" customMsg="no file uploaded" else: filename=utf8Decode(getattr(data,'filename', '')) titre_data=filename[max(string.rfind(filename, '/'), string.rfind(filename, '\\'), string.rfind(filename, ':'), )+1:] # idObj can't be cleaned with PloneArticle attachements # it's a problem but we do the job idObj=fckCreateValidZopeId(utf8Encode(titre_data)) if title : titre_data=title if not user.has_permission('Modify portal content', obj): error = "103" elif not allow_image_upload: error = "103" elif not IsAllowedExt( FindExtension(idObj), resourceType ): error= "202" customMsg="Invalid file type" if not error: error = "0" # [reinout:] somehow error is set to "" at the start, # but that wreaks havoc here (javascript syntax # error). So we set it to "0", which is the right # 'error' when there's no error. if error=="0": try: while idObj in obj.contentIds(): idObj = 'copy_of_%s' % idObj resource_to_pt = dict( File='FileAttachment', Image='ImageAttachment', Flash='FileAttachment', ) obj.invokeFactory(resource_to_pt[resourceType], idObj) attachment = getattr(obj, idObj) attachment.setTitle(titre_data) if resourceType == 'Image': attachment.setImage(data) else: attachment.setFile(data) if linkbyuid: fileUrl = "./resolveuid/" + attachment.UID() else: fileUrl = attachment.absolute_url() except Exception, e: error="1" customMsg="Server error: %s" % e