[mod_python] upload file?

John Mudd JohnMudd at mindspring.com
Fri May 7 07:25:09 EST 2004


Thanks for the latest code.  I think my problem is somewhere else
though.  

Even with this code my field is treated as a string.  I forced the
"found.append(item)" to be executed and I am able to execure the
file.read() for my object.  But that just gives me a copy of the file
name, not the contents.

The field is a file input field on my form.  I get the "Browse..."
button, select a file but, so far, I can't get the contents of the file.

John



On Fri, 2004-05-07 at 06:45, David Fraser wrote:
> No, this doesn't contain the correct code...
> You need to replace the line as follows (and two others like it):
> -                if isinstance(item.file, FileType):
> +                if isinstance(item.file, FileType) or \
> +                       isinstance(getattr(item.file, 'file', None), 
> FileType):
> BTW Grisha has committed this code to CVS so it should be in the next 
> version of mod_python (thanks Grisha)...
> 
> John Mudd wrote:
> 
> >Perfect timing!  I just found that thread myself via Gogle and I just
> >checked my 3.1.3 version of util.py.  It seems to contain the correct
> >code.  Here it is:
> >
> >
> >    def __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):
> >                    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
> >
> >
> >
> >
> >I added debug code inside this method and here are the results:
> >
> >item=Field('inputJar', 'zopeIntro.txt')
> >item.type='text/plain'
> >item.type_options={}
> >type(item)=<type 'instance'>
> >
> >
> >
> >
> >
> >Someone else mad a suggestion that I'm not setting my content_type
> >correctly.  Here's what I'm using.
> >
> >def handler(req):
> >     req.content_type = 'text/html'
> >
> >
> >
> >I tried switching to req.content_type = 'multipart/form-data'.  That did
> >have an effect.  Now I get a popup from my browser asking if I want to
> >save the file or open it with an application.
> >
> >
> >
> >Any suggestions?
> >
> >
> >
> >On Fri, 2004-05-07 at 05:04, Volodya wrote:
> >  
> >
> >>On Thu, May 06, 2004 at 01:21:29PM -0400, John Mudd wrote:
> >>    
> >>
> >>>(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? 
> >>>      
> >>>
> >>Check this thread :
> >>
> >> http://www.modpython.org/pipermail/mod_python/2004-March/015224.html
> >>
> >>
> >>
> >>_______________________________________________
> >>Mod_python mailing list
> >>Mod_python at modpython.org
> >>http://mailman.modpython.org/mailman/listinfo/mod_python
> >>    
> >>
> >
> >_______________________________________________
> >Mod_python mailing list
> >Mod_python at modpython.org
> >http://mailman.modpython.org/mailman/listinfo/mod_python
> >
> >  
> >
> 



More information about the Mod_python mailing list