New submission from loveminix <lovemi...@yahoo.com.cn>: The following cgi applet uploads a binary file to the server. It gets a "UnicodeDecodeError" inside cgi.FieldStorage(). The same code works in python 2.6.
#! /usr/bin/python3 import os, cgi; import cgitb; cgitb.enable(); pathInfo = os.environ.get("PATH_INFO", ""); serverName = os.environ.get("SERVER_NAME", ""); scriptName = os.environ.get("SCRIPT_NAME", ""); if pathInfo == "": print( """\ Content-type: text/html """ ); print( """\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> </head> <body> <div> <form action="http://{0}{1}/upload" enctype="multipart/form-data" method="post"> <p> <input type="file" name="file"><br> <input type="submit" value="Upload"> </p> </form> </div> </body> </html>\ """.format(serverName, scriptName) ); elif pathInfo == "/upload": fieldStorage = cgi.FieldStorage(); fileItem = fieldStorage["file"]; if fileItem.filename != "": file = open("/tmp/test.txt", mode="wb"); file.write(fileItem.file.read()); file.close(); print( """\ Content-type: text/html """ ); print( """\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> </head> <body> <div> <p>Success</p> </div> </body> </html>\ """ ); ---------- components: Library (Lib) messages: 92343 nosy: loveminix severity: normal status: open title: UnicodeDecodeError when retrieving binary data from cgi.FieldStorage() type: behavior versions: Python 3.1 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6854> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com