[zope-pt] Validando um arquivo PDF

2010-06-16 Por tôpico Julio Zinga Suzuki Lopes
Saudações comunidade!

Estou com a seguinte dúvida: Quero implementar um produto que só aceite
UPLOAD de arquivos pdf's

Estou querendo criar um validador com uma função para restringir.

mas não pega nenhum tipo de arquivo. e ao tentar compilar, ou melhor, rodar
o instence fg
aparece o seguinte erro final
*
ZopeXMLConfigurationError: File
/usr/local/Plone/zinstance/src/pox.video/pox/video/content/configure.zcml,
line 20.2-22.5
SyntaxError: 'return' outside function (validators.py, line 24)*


Alguém já precisou de restringir uma pasta com um tipo específico de
arquivo?

Códigos:

validators.py

from  zope.interface import implements
from  zope.component import adapts
from  Products.Archetypes.interfaces import IObjectPostValidation
from  pox.video import videoMessageFactory as _
from  pox.video.interfaces import IVideo

# class name could be any one
class ValidatePDFFile(object):

Checks if file field has a real FLV file

implements(IObjectPostValidation)
adapts(IVideo)


def validate_file(self, value):
valida a extensão de um arquivo PDF
field = self.getField('file')
if field.getContentType(self) not in self.inlineMimetypePDF:
   return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
permitidos'


# Returning None means no error
return None



configure.zcml

  subscriber
provides=Products.Archetypes.interfaces.IObjectPostValidation
factory=.validators.ValidatePDFFile
   /
/configure


E uma classe que chama-se video, mas deveria ser filePDF, (ignorar este
detalhe :)

class Video(file.ATFile):

pox Video

implements(IATFile,IVideo)

meta_type = Video
schema = VideoSchema

title = atapi.ATFieldProperty('title')
description = atapi.ATFieldProperty('description')

inlineMimetypePDF= ('application/pdf')

# -*- Your ATSchema to Python Property Bridges Here ... -*-

atapi.registerType(Video, PROJECTNAME)



-- 
-- 
Júlio Zinga Suzuki Lopes
Analista de TI
Tel: 83 8862-1530 / 9975-1646


Re: [zope-pt] Validando um arquivo PDF

2010-06-16 Por tôpico Alexandre Marinho
Acho que ta rolando erro de sintaxe ai, olha essa linha:

# Returning None means no error
return None

esse return está fora da função por isso está acontecendo o erro.
--
Alexandre Marinho
Analista de Tecnologia da Informação - NTI - UFAL
http://alexandre.cuboestudioweb.com
Maceió/AL


Em 16 de junho de 2010 12:09, Julio Zinga Suzuki Lopes juliozi...@gmail.com
 escreveu:



 Saudações comunidade!

 Estou com a seguinte dúvida: Quero implementar um produto que só aceite
 UPLOAD de arquivos pdf's

 Estou querendo criar um validador com uma função para restringir.

 mas não pega nenhum tipo de arquivo. e ao tentar compilar, ou melhor, rodar
 o instence fg
 aparece o seguinte erro final
 *
 ZopeXMLConfigurationError: File
 /usr/local/Plone/zinstance/src/pox.video/pox/video/content/configure.zcml,
 line 20.2-22.5
 SyntaxError: 'return' outside function (validators.py, line 24)*


 Alguém já precisou de restringir uma pasta com um tipo específico de
 arquivo?

 Códigos:

 validators.py

 from  zope.interface import implements
 from  zope.component import adapts
 from  Products.Archetypes.interfaces import IObjectPostValidation
 from  pox.video import videoMessageFactory as _
 from  pox.video.interfaces import IVideo

 # class name could be any one
 class ValidatePDFFile(object):
 
 Checks if file field has a real FLV file
 
 implements(IObjectPostValidation)
 adapts(IVideo)


 def validate_file(self, value):
 valida a extensão de um arquivo PDF
 field = self.getField('file')
 if field.getContentType(self) not in self.inlineMimetypePDF:
return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
 permitidos'


 # Returning None means no error
 return None



 configure.zcml

   subscriber
 provides=Products.Archetypes.interfaces.IObjectPostValidation
 factory=.validators.ValidatePDFFile
/
 /configure


 E uma classe que chama-se video, mas deveria ser filePDF, (ignorar este
 detalhe :)

 class Video(file.ATFile):
 
 pox Video
 
 implements(IATFile,IVideo)

 meta_type = Video
 schema = VideoSchema

 title = atapi.ATFieldProperty('title')
 description = atapi.ATFieldProperty('description')

 inlineMimetypePDF= ('application/pdf')

 # -*- Your ATSchema to Python Property Bridges Here ... -*-

 atapi.registerType(Video, PROJECTNAME)



 --
 --
 Júlio Zinga Suzuki Lopes
 Analista de TI
 Tel: 83 8862-1530 / 9975-1646


 


Re: [zope-pt] Validando um arquivo PDF

2010-06-16 Por tôpico Julio Zinga Suzuki Lopes
Ok.

Corrigi o return.

Agora, parece que ele pede um _init_ !? Reclama de um _new_
Precisa fazer um def _init_  ?  ou def _new_  ?


  Module Products.Archetypes.BaseObject, line 514, in validate
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 539, in subscribers
 TypeError: default __new__ takes no parameters


*novo validators.py*

*from  zope.interface import implements
from  zope.component import adapts
from  Products.Archetypes.interfaces import IObjectPostValidation
from  pox.video import videoMessageFactory as _
from  pox.video.interfaces import IVideo

# class name could be any one
class ValidatePDFFile(object):

Checks if file field has a real FLV file

implements(IObjectPostValidation)
adapts(IVideo)

def validate_file(self, context):
valida a extensão de um arquivo PDF
field = self.getField('file')
if field.getContentType(self) not in self.inlineMimetypePDF:
   return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
permitidos'
else:
   return None
*

2010/6/16 Alexandre Marinho lyrale...@gmail.com



 Acho que ta rolando erro de sintaxe ai, olha essa linha:


 # Returning None means no error
 return None

 esse return está fora da função por isso está acontecendo o erro.
 --
 Alexandre Marinho
 Analista de Tecnologia da Informação - NTI - UFAL
 http://alexandre.cuboestudioweb.com
 Maceió/AL


 Em 16 de junho de 2010 12:09, Julio Zinga Suzuki Lopes 
 juliozi...@gmail.com escreveu:



 Saudações comunidade!

 Estou com a seguinte dúvida: Quero implementar um produto que só aceite
 UPLOAD de arquivos pdf's

 Estou querendo criar um validador com uma função para restringir.

 mas não pega nenhum tipo de arquivo. e ao tentar compilar, ou melhor,
 rodar o instence fg
 aparece o seguinte erro final
 *
 ZopeXMLConfigurationError: File
 /usr/local/Plone/zinstance/src/pox.video/pox/video/content/configure.zcml,
 line 20.2-22.5
 SyntaxError: 'return' outside function (validators.py, line 24)*


 Alguém já precisou de restringir uma pasta com um tipo específico de
 arquivo?

 Códigos:

 validators.py

 from  zope.interface import implements
 from  zope.component import adapts
 from  Products.Archetypes.interfaces import IObjectPostValidation
 from  pox.video import videoMessageFactory as _
 from  pox.video.interfaces import IVideo

 # class name could be any one
 class ValidatePDFFile(object):
 
 Checks if file field has a real FLV file
 
 implements(IObjectPostValidation)
 adapts(IVideo)


 def validate_file(self, value):
 valida a extensão de um arquivo PDF
 field = self.getField('file')
 if field.getContentType(self) not in self.inlineMimetypePDF:
return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
 permitidos'


 # Returning None means no error
 return None



 configure.zcml

   subscriber
 provides=Products.Archetypes.interfaces.IObjectPostValidation
 factory=.validators.ValidatePDFFile
/
 /configure


 E uma classe que chama-se video, mas deveria ser filePDF, (ignorar este
 detalhe :)

 class Video(file.ATFile):
 
 pox Video
 
 implements(IATFile,IVideo)

 meta_type = Video
 schema = VideoSchema

 title = atapi.ATFieldProperty('title')
 description = atapi.ATFieldProperty('description')

 inlineMimetypePDF= ('application/pdf')

 # -*- Your ATSchema to Python Property Bridges Here ... -*-

 atapi.registerType(Video, PROJECTNAME)



 --
 --
 Júlio Zinga Suzuki Lopes
 Analista de TI
 Tel: 83 8862-1530 / 9975-1646



  




-- 
-- 
Júlio Zinga Suzuki Lopes
Analista de TI
Tel: 83 8862-1530 / 9975-1646