I am uploading a .zip file to a Python CGI program, using a form on
a HTML page with
<input name="yourfile" type="file">...
In the Python CGI program I do:
import cgi
fStorage = cgi.FieldStorage()
zipdata = fStorage['yourfile'].value
print "Content-type: text/plain"
print
print len(zipdata)
Now the length of the zipdata is 100, where it should be about
2635...and unzipping it with zipfile of course gives the "not a zip
file" error.
The last part of the data that is received by the CGI script is:
\xf2\xf1!0\xdbS\xa9
and the next one *should* be \x1a
It seems that the .zip data is being truncated, but I don't know where
in my tool chain.
The strange thing is that the Python CGI script *does* work on a
Apache 1.3.27 server at work (unix), but gives the error above when
run on
my laptop with Windows XP and Apache 1.3.27 and also with the Apache
version 2.0.48 I tried later.
Does anybody have a clue what is going on?
Maybe the error is with the Windows version of Apache? Or is it a
Python problem (the unix server has Python 2.1.1). 6 3801
On Sat, Dec 06, 2003 at 12:40:43PM -0800, Will Stuyvesant wrote: I am uploading a .zip file to a Python CGI program, using a form on a HTML page with
<snip>
Without being able to see the form, I wonder if you're certain you set the enctype on the form to "multipart/form-data"?
You're working across multiple servers and if you're retyping the script each time its easy to forget the enctype of the form.
HTH
--
Jay Dorsey
jay at jaydorsey dot com
The problem I described in this thread is with Apache, not with
Python! And the unix Apache at my work has no problems, its only the
Windows Apache versions. So the Apache peeps will probably say it's a
*Windows* problem 0-)
I found out with the following: I can now avoid the first HTML page
with the .zip upload, instead I upload the .zip to my Python CGI
program with this little program:
import urllib
import webbrowser
webserviceURI = r'http://localhost/cgi-bin/mycgiprogram.py'
startpageName = 'start.xml'
# instead of a HTML page with INPUT type=file just read the file
fp = open(fname, 'rb')
data = fp.read()
fp.close()
# all CGI parameters in a dict, and encoded
params = urllib.urlencode({ 'yourfile': data })
# call the CGI program and read what it returns
f = urllib.urlopen(webserviceURI, params)
webpage = f.read()
# save it locally in a file
wpfp = open(startpageName, 'w')
wpfp.write(webpage)
wpfp.close()
# show it in your browser
webbrowser.open(startpageName)
--
If pro is the opposite of con, what is the opposite of progress? hw***@hotmail.com (Will Stuyvesant) wrote in message news:<cb**************************@posting.google. com>... I am uploading a .zip file to a Python CGI program, using a form on a HTML page with
<input name="yourfile" type="file">...
In the Python CGI program I do:
import cgi fStorage = cgi.FieldStorage() zipdata = fStorage['yourfile'].value print "Content-type: text/plain" print print len(zipdata)
Now the length of the zipdata is 100, where it should be about 2635...and unzipping it with zipfile of course gives the "not a zip file" error.
The last part of the data that is received by the CGI script is:
\xf2\xf1!0\xdbS\xa9
and the next one *should* be \x1a
It seems that the .zip data is being truncated, but I don't know where in my tool chain.
.... Does anybody have a clue what is going on?
Maybe the error is with the Windows version of Apache? Or is it a Python problem (the unix server has Python 2.1.1).
Had a similare problem with *.jpg uploads
uploading files with a shebang such as:
#! c:/python23/python -u
reolved it for me
the -u part telling Windows to get data "unbuffered", so I read somewhere...
Good weekend,
JM
> [jm*********@cvm.qc.ca] Had a similare problem with *.jpg uploads
uploading files with a shebang such as: #! c:/python23/python -u reolved it for me the -u part telling Windows to get data "unbuffered", so I read somewhere...
Great! Solved it for me too! Thank you!
Will Stuyvesant <hw***@hotmail.com> wrote: I am uploading a .zip file to a Python CGI program, using a form on a HTML page with
<input name="yourfile" type="file">...
In the Python CGI program I do:
import cgi fStorage = cgi.FieldStorage() zipdata = fStorage['yourfile'].value print "Content-type: text/plain" print print len(zipdata)
Now the length of the zipdata is 100, where it should be about 2635...and unzipping it with zipfile of course gives the "not a zip file" error.
The last part of the data that is received by the CGI script is:
\xf2\xf1!0\xdbS\xa9
and the next one *should* be \x1a
\x1a is ASCII for Ctrl-Z, which is used in Windows as an EOF (End Of
File) marker.
It seems that the .zip data is being truncated, but I don't know where in my tool chain.
Somewhere in your tool chain, something is opening a file in text mode
instead of in binary mode.
The fact that your CGI script works on Unix but fails on Windows is
further proof that the Ctrl-Z is being treated as EOF on Windows, since
Unix doesn't give that character any special meaning.
--
Robin Munn rm***@pobox.com
On Sun, 6 Dec 2003, Will Stuyvesant wrote: The last part of the data that is received by the CGI script is:
\xf2\xf1!0\xdbS\xa9
and the next one *should* be \x1a
ISTR that \x1A is control-Z.
Which is the EOF character on CP/M derived systems, and is still
interpreted thusly in the most surprising places in software from Redmond.
As another poster suggested, the -u option is the usual solution.
--
Andrew I MacIntyre "These thoughts are mine alone..."
E-mail: an*****@bullseye.apana.org.au (pref) | Snail: PO Box 370 an*****@pcug.org.au (alt) | Belconnen ACT 2616
Web: http://www.andymac.org/ | Australia This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Ralph Freshour |
last post by:
I'm trying to code the ability for my users to upload up to photo's to
mysql database - can someone point me in the right direction as to how
this might be done in php? Perhaps a tutorial or some...
|
by: Vasil Slavov |
last post by:
I apologize for the long email. I hope somebody will have time to read
it and give some suggestions.
I am working on a school project written in Python (using mod_python)
and I need to upload a...
|
by: rbt |
last post by:
Has anyone used pure python to upload files to a webdav server over SSL?
I have no control over the server. I can access it with all of the
various webdav GUIs such as Konqueror, Cadaver, etc. by...
|
by: Chris Dewin |
last post by:
How do I go about writing a cgi script, that will enable the client to
upload things to a directory on my website?
I would also like to write a script that enables the client to delete
items in...
|
by: hb |
last post by:
Hi,
In my ASP.Net application 'MyWebApp' , the mode="StateServer" in
<sessionState>
of Web.config file, and the ASP.NET State Service is set to start
automatically on the
server. But every...
|
by: Carlos |
last post by:
Hello Forum,
I would appreciate it if you could recommend settings to use auto-vacuum in
my version 7.4 database. I am uploading several thousands records in the
database at a rate of ~1 second...
|
by: Velhari |
last post by:
Hi all,
I developed the following codes to implement the concept of Multiple file Uploading Process.
Actually my goal in this implementation is to uploads the files onto the server and i have...
|
by: Lad |
last post by:
If a user will upload large files via FTP protocol, must the user
have an FTP client on his computer or is it possible to use a similar
way to "http form" comunication?
Or is there another way(...
|
by: Lad |
last post by:
On my website I allow users to upload files. I would like a user to see
how much time is left before a file is uploaded. So, I would like to
have a progress bar during a file uploading. Can Python...
|
by: DJRhino |
last post by:
Was curious if anyone else was having this same issue or not....
I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 4 Oct 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM)
The start time is equivalent to 19:00 (7PM) in Central...
|
by: Aliciasmith |
last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
|
by: tracyyun |
last post by:
Hello everyone,
I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
|
by: giovanniandrean |
last post by:
The energy model is structured as follows and uses excel sheets to give input data:
1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 1 Nov 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM)
Please note that the UK and Europe revert to winter time on...
|
by: nia12 |
last post by:
Hi there,
I am very new to Access so apologies if any of this is obvious/not clear.
I am creating a data collection tool for health care employees to complete. It consists of a number of...
|
by: NeoPa |
last post by:
Introduction
For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
|
by: isladogs |
last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM).
In this month's session, Mike...
| |