John Mudd
JohnMudd at mindspring.com
Fri May 7 04:23:33 EST 2004
I added your patch but it didn't seem to change the results. I was able to check the type of the object though. Here are the results of my debug code. item=Field('inputJar', 'zopeIntro.txt') item.type='text/plain' item.type_options={} type(item)=<type 'instance'> It's interesting. I am able to execute item.read(). But it returns 'zopeIntro.txt', the name of the file, not the contents. John On Thu, 2004-05-06 at 13:49, Maxime Yve wrote: > Hi, > > > > I have the same problem with mod_python 3.1.3 on windows: > > This comes from the __getitem__ method of FieldStorage > > > > Indeed => : > > On windows > > > > >>> import tempfile > > >>> glop = tempfile.TemporaryFile('w+b') > > >>> type(glop) > > <type 'instance'> > > > > On Unix : > > >>> import tempfile > > >>> glop = tempfile.TemporaryFile('w+b') > > >>> type(glop) > > <type 'file'> > > > > And isinstance(item.file, FileType) return false on Windows, this > cause the bug on __getitem__ > > > > To correct temporary this problem (I'm not active on the community and > I can't correct the mistake) > > You can do this monkey hook on your own file before using > FieldStorage: > > > > from types import * > > from mod_python.util import StringField > > > > > > # patch bug on windows for mod_python 3.1.3 > > def patch_getitem(self, key): > > """Dictionary style indexing.""" > > if self.list is None: > > raise TypeError, "not indexable" > > found = [] > > for item in self.list: > > if item.name == key: > > if isinstance(item.file, FileType) or > isinstance(item.file, InstanceType): > > found.append(item) > > else: > > found.append(StringField(item.value)) > > if not found: > > raise KeyError, key > > if len(found) == 1: > > return found[0] > > else: > > return found > > util.FieldStorage.__getitem__ = patch_getitem > > > > Max > > > > -----Original Message----- > From: mod_python-bounces at modpython.org > [mailto:mod_python-bounces at modpython.org] On Behalf Of John Mudd > Sent: jeudi 6 mai 2004 19:21 > To: mod_python at modpython.org > Subject: [mod_python] upload file? > > > > (Sorry if you see this msg twice. I submitted this earlier today by > under a non-member email address.) > > > > I'm trying to upload a file. I specified a "file" type input field in > my HTML, it displays as expected with the "Browse..." button, I'm able > to select a file but... > > > > When I look in the FieldStorage dictionary for the field I only get a > String type field that is the file name. I was expecting a "Field" > type object that would provide access to the file name and contents. > > > > What am I missing? > > > > John > > _______________________________________________ > > Mod_python mailing list > > Mod_python at modpython.org > > http://mailman.modpython.org/mailman/listinfo/mod_python > >
|