X-Git-Url: https://svn.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/3e0a2c257d49fb162da9c70d2f70194036235166..b3b52f5b0ad754fd9036f816d0ab8e98a5373f40:/File.py?ds=inline

diff --git a/File.py b/File.py
index 11bdafa..c0e37c7 100755
--- a/File.py
+++ b/File.py
@@ -21,7 +21,7 @@
 	File. If exists, portal_transforms is called to extract text content, and publish
 	attachments.
 
-$Id: File.py 1261 2008-01-07 01:34:23Z pin $
+$Id: File.py 1549 2010-02-04 13:04:22Z pin $
 $URL: http://svn.cri.ensmp.fr/svn/Plinn/branches/CMF-2.1/File.py $
 """
 
@@ -33,6 +33,7 @@ from zope.component.factory import Factory
 from Products.CMFDefault.File import File as BaseFile
 from Products.CMFCore.permissions import View, ModifyPortalContent
 from Products.CMFCore.utils import getToolByName
+from swfheader import parse as parseswf
 
 class File(BaseFile) :
 	""" file class with portal_transforms support """
@@ -60,6 +61,32 @@ class File(BaseFile) :
 				
 			raise AttributeError, name
 	
+	def manage_upload(self,file='',REQUEST=None):
+		ret = super(File, self).manage_upload(file=file, REQUEST=REQUEST)
+
+		orig_name = OFS.Image.cookId('', '', file)[0]
+		if orig_name :
+			self.orig_name = orig_name
+
+		print self.absolute_url(), self.Format()
+		if self.Format() == 'application/x-shockwave-flash' :
+			if file :
+				try :
+					swfmetadata = parseswf(file)
+				except IOError :
+					swfmetadata = {'width':600, 'height':600}
+
+			for name in ('width', 'height') :
+				value = swfmetadata[name]
+				if self.hasProperty(name) :
+					self._updateProperty(name, value)
+				else :
+					self.manage_addProperty(name, value, 'int')
+		self.reindexObject()
+		return ret
+		
+		
+	
 	security.declareProtected(ModifyPortalContent, 'edit')
 	def edit(self, precondition='', file=''):
 		orig_name = OFS.Image.cookId('', '', file)[0]