[Zope] Problem with upload object
Andrew Davidson
thishightoride@hotmail.com
Tue, 5 Nov 2002 10:20:31 -0500
This is a multi-part message in MIME format.
------=_NextPart_000_0030_01C284B4.F8241850
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
I don't think that the object that I'm grabbing is a file upload object =
because I get an AttributeError when I try to access the 'filename' =
attribute, and when I reference the object name, it return the path of =
the uploaded file instead of the actual file. My Zope file then =
contains only a string of text that is the path that the user submitted. =
There's probably something obvious that I'm not doing, but I've read =
the documentation, and that hasn't helped. I'm using Ie6, zope is =
runnning on Solaris8. See below for the code and error.
Your help is greatly appreciated, thanks.
Andrew
The form:
<form action=3D"Upload_FileAction" method=3D"POST">
<p> Select File to Upload:
<input type=3D"file" name=3D"uploaded" enctype=3D"multipart/form-data">
</p>
<input type=3D"submit" value=3D"Upload File">
</p>
</form>
The method:
<dtml-call =
"manage_addProduct['OFSP'].manage_addFile(uploaded.filename,uploaded)">
The error log:
Exception traceback
Time 2002/11/05 10:16:31.529 US/Eastern=20
User Name (User Id) admin (admin)=20
Request URL http://127.0.0.1:8080/Krude/Upload_FileAction=20
Exception Type AttributeError=20
Exception Value filename=20
Traceback (innermost last):=20
a.. Module ZPublisher.Publish, line 98, in publish=20
b.. Module ZPublisher.mapply, line 88, in mapply=20
c.. Module ZPublisher.Publish, line 39, in call_object=20
d.. Module OFS.DTMLMethod, line 126, in __call__=20
e.. Module DocumentTemplate.DT_String, line 474, in __call__=20
f.. Module DocumentTemplate.DT_Util, line 201, in eval
__traceback_info__: uploaded=20
g.. Module <string>, line 2, in f=20
AttributeError: filename=20
form
uploaded 'C:\\DATA\\Programming\\Norm & Tom - php\\test.html'=20
cookies
tree-s 'eJyLjlZ3hANPW3UdhWiEiHOWq616LBAAAL3mChA'=20
tutorialExamplesURL 'http://127.0.0.1:8080/Tutorial/examples'=20
lazy items
SESSION <bound method SessionDataManager.getSessionData of =
<SessionDataManager instance at bc55a8>>=20
other
AUTHENTICATION_PATH ''=20
URL1 'http://127.0.0.1:8080/Krude'=20
BASE3 'http://127.0.0.1:8080/Krude/Upload_FileAction'=20
URL2 'http://127.0.0.1:8080'=20
BASE1 'http://127.0.0.1:8080'=20
SERVER_URL 'http://127.0.0.1:8080'=20
PUBLISHED <DTMLMethod instance at f20d40>=20
URL 'http://127.0.0.1:8080/Krude/Upload_FileAction'=20
AUTHENTICATED_USER admin=20
BASE2 'http://127.0.0.1:8080/Krude'=20
TraversalRequestNameStack []=20
uploaded 'C:\\DATA\\Programming\\Norm & Tom - php\\test.html'=20
URL0 http://127.0.0.1:8080/Krude/Upload_FileAction=20
URL1 http://127.0.0.1:8080/Krude=20
URL2 http://127.0.0.1:8080=20
BASE0 http://127.0.0.1:8080=20
BASE1 http://127.0.0.1:8080=20
BASE2 http://127.0.0.1:8080/Krude=20
BASE3 http://127.0.0.1:8080/Krude/Upload_FileAction=20
environ
HTTP_ACCEPT_ENCODING 'gzip, deflate'=20
CONTENT_TYPE 'application/x-www-form-urlencoded'=20
PATH_TRANSLATED '/Krude/Upload_FileAction'=20
HTTP_ACCEPT 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, =
application/vnd.ms-excel, application/vnd.ms-powerpoint, =
application/msword, application/x-gsarcade-launch, */*'=20
HTTP_COOKIE =
'tutorialExamplesURL=3D"http://127.0.0.1:8080/Tutorial/examples"; =
tree-s=3D"eJyLjlZ3hANPW3UdhWiEiHOWq616LBAAAL3mChA"'=20
HTTP_ACCEPT_LANGUAGE 'en-ca'=20
GATEWAY_INTERFACE 'CGI/1.1'=20
SERVER_PORT '8080'=20
HTTP_USER_AGENT 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT =
5.0)'=20
CONTENT_LENGTH '67'=20
REMOTE_ADDR '192.168.2.10'=20
channel.creation_time 1036509387=20
SERVER_PROTOCOL 'HTTP/1.1'=20
PATH_INFO '/Krude/Upload_FileAction'=20
HTTP_HOST '127.0.0.1:8080'=20
REQUEST_METHOD 'POST'=20
SCRIPT_NAME ''=20
SERVER_SOFTWARE 'Zope/(Zope 2.6.0 (binary release, python 2.1, =
solaris-2.8-sparc), python 2.1.3, sunos5) ZServer/1.1b1'=20
HTTP_CACHE_CONTROL 'no-cache'=20
CONNECTION_TYPE 'Keep-Alive'=20
HTTP_REFERER 'http://127.0.0.1:8080/Krude/Upload_FileForm'=20
SERVER_NAME 'gratuitous'=20
------=_NextPart_000_0030_01C284B4.F8241850
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2719.2200" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I don't think that the object that I'm =
grabbing is=20
a file upload object because I get an AttributeError when I try to =
access the=20
'filename' attribute, and when I reference the object name, it return =
the path=20
of the uploaded file instead of the actual file. My Zope file then =
contains only a string of text that is the path that the user =
submitted. =20
There's probably something obvious that I'm not doing, but I've read the =
documentation, and that hasn't helped. I'm using Ie6, zope is =
runnning on=20
Solaris8. See below for the code and error.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Your help is greatly appreciated,=20
thanks.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Andrew</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3D"Courier New" size=3D2>The form:</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT> </DIV>
<DIV><FONT face=3D"Courier New" size=3D2><form =
action=3D"Upload_FileAction"=20
method=3D"POST"><BR><p> Select File to Upload:<BR><input =
type=3D"file"=20
name=3D"uploaded" =
enctype=3D"multipart/form-data"><BR></p></FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2><input type=3D"submit" =
value=3D"Upload=20
File"><BR></p><BR></form><BR></FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2>The method:</FONT></DIV><FONT=20
face=3D"Courier New"><FONT size=3D2><FONT face=3DArial>
<DIV><BR><FONT face=3D"Courier New"><dtml-call=20
"manage_addProduct['OFSP'].manage_addFile(uploaded.filename,uploaded)">=
;</FONT></DIV>
<DIV><FONT face=3D"Courier New"></FONT> </DIV>
<DIV><FONT face=3D"Courier New">The error log:</FONT></DIV>
<DIV><FONT face=3D"Courier New"></FONT> </DIV>
<DIV>
<H3><FONT face=3D"Courier New">Exception traceback</FONT></H3>
<DIV>
<DIV>
<TABLE>
<TBODY>
<TR>
<TH vAlign=3Dtop align=3Dleft><FONT face=3D"Courier =
New">Time</FONT></TH>
<TD><FONT face=3D"Courier New">2002/11/05 10:16:31.529=20
US/Eastern</FONT></TD></TR>
<TR>
<TH vAlign=3Dtop align=3Dleft><FONT face=3D"Courier New">User Name =
(User=20
Id)</FONT></TH>
<TD><FONT face=3D"Courier New">admin (admin)</FONT></TD></TR>
<TR>
<TH vAlign=3Dtop align=3Dleft><FONT face=3D"Courier New">Request =
URL</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">http://127.0.0.1:8080/Krude/Upload_FileAction</FONT></TD></TR>
<TR>
<TH vAlign=3Dtop align=3Dleft><FONT face=3D"Courier New">Exception=20
Type</FONT></TH>
<TD><FONT face=3D"Courier New">AttributeError</FONT></TD></TR>
<TR>
<TH vAlign=3Dtop align=3Dleft><FONT face=3D"Courier New">Exception=20
Value</FONT></TH>
<TD><FONT face=3D"Courier =
New">filename</FONT></TD></TR></TBODY></TABLE>
<DIV>
<P><FONT face=3D"Courier New">Traceback (innermost last): </FONT>
<UL>
<LI><FONT face=3D"Courier New">Module ZPublisher.Publish, line 98, in =
publish=20
</FONT>
<LI><FONT face=3D"Courier New">Module ZPublisher.mapply, line 88, in =
mapply=20
</FONT>
<LI><FONT face=3D"Courier New">Module ZPublisher.Publish, line 39, in=20
call_object </FONT>
<LI><FONT face=3D"Courier New">Module OFS.DTMLMethod, line 126, in =
__call__=20
</FONT>
<LI><FONT face=3D"Courier New">Module DocumentTemplate.DT_String, line =
474, in=20
__call__ </FONT>
<LI><FONT face=3D"Courier New">Module DocumentTemplate.DT_Util, line =
201, in=20
eval<BR>__traceback_info__: uploaded </FONT>
<LI><FONT face=3D"Courier New">Module <string>, line 2, in f=20
</FONT></LI></UL><FONT face=3D"Courier New">AttributeError: filename =
</FONT>
<P></P></DIV>
<P><FONT face=3D"Courier New"></FONT> </P>
<DIV>
<H3><FONT face=3D"Courier New">form</FONT></H3>
<TABLE>
<TBODY>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">uploaded</FONT></TH>
<TD><FONT face=3D"Courier New">'C:\\DATA\\Programming\\Norm & =
Tom -=20
php\\test.html'</FONT></TD></TR></TBODY></TABLE>
<H3><FONT face=3D"Courier New">cookies</FONT></H3>
<TABLE>
<TBODY>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">tree-s</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'eJyLjlZ3hANPW3UdhWiEiHOWq616LBAAAL3mChA'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">tutorialExamplesURL</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'http://127.0.0.1:8080/Tutorial/examples'</FONT></TD></TR></TBODY></=
TABLE>
<H3><FONT face=3D"Courier New">lazy items</FONT></H3>
<TABLE>
<TBODY>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SESSION</FONT></TH>
<TD><FONT face=3D"Courier New"><bound method=20
SessionDataManager.getSessionData of <SessionDataManager =
instance at=20
bc55a8>></FONT></TD></TR></TBODY></TABLE>
<H3><FONT face=3D"Courier New">other</FONT></H3>
<TABLE>
<TBODY>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">AUTHENTICATION_PATH</FONT></TH>
<TD><FONT face=3D"Courier New">''</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL1</FONT></TH>
<TD><FONT face=3D"Courier =
New">'http://127.0.0.1:8080/Krude'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE3</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'http://127.0.0.1:8080/Krude/Upload_FileAction'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL2</FONT></TH>
<TD><FONT face=3D"Courier =
New">'http://127.0.0.1:8080'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE1</FONT></TH>
<TD><FONT face=3D"Courier =
New">'http://127.0.0.1:8080'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SERVER_URL</FONT></TH>
<TD><FONT face=3D"Courier =
New">'http://127.0.0.1:8080'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">PUBLISHED</FONT></TH>
<TD><FONT face=3D"Courier New"><DTMLMethod instance at=20
f20d40></FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'http://127.0.0.1:8080/Krude/Upload_FileAction'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">AUTHENTICATED_USER</FONT></TH>
<TD><FONT face=3D"Courier New">admin</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE2</FONT></TH>
<TD><FONT face=3D"Courier =
New">'http://127.0.0.1:8080/Krude'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">TraversalRequestNameStack</FONT></TH>
<TD><FONT face=3D"Courier New">[]</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">uploaded</FONT></TH>
<TD><FONT face=3D"Courier New">'C:\\DATA\\Programming\\Norm & =
Tom -=20
php\\test.html'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL0</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">http://127.0.0.1:8080/Krude/Upload_FileAction</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL1</FONT></TH>
<TD><FONT face=3D"Courier =
New">http://127.0.0.1:8080/Krude</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">URL2</FONT></TH>
<TD><FONT face=3D"Courier =
New">http://127.0.0.1:8080</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE0</FONT></TH>
<TD><FONT face=3D"Courier =
New">http://127.0.0.1:8080</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE1</FONT></TH>
<TD><FONT face=3D"Courier =
New">http://127.0.0.1:8080</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE2</FONT></TH>
<TD><FONT face=3D"Courier =
New">http://127.0.0.1:8080/Krude</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">BASE3</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">http://127.0.0.1:8080/Krude/Upload_FileAction</FONT></TD></TR></TBOD=
Y></TABLE>
<H3><FONT face=3D"Courier New">environ</FONT></H3>
<TABLE>
<TBODY>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_ACCEPT_ENCODING</FONT></TH>
<TD><FONT face=3D"Courier New">'gzip, deflate'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">CONTENT_TYPE</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'application/x-www-form-urlencoded'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">PATH_TRANSLATED</FONT></TH>
<TD><FONT face=3D"Courier =
New">'/Krude/Upload_FileAction'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_ACCEPT</FONT></TH>
<TD><FONT face=3D"Courier New">'image/gif, image/x-xbitmap, =
image/jpeg,=20
image/pjpeg, application/vnd.ms-excel, =
application/vnd.ms-powerpoint,=20
application/msword, application/x-gsarcade-launch, =
*/*'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_COOKIE</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'tutorialExamplesURL=3D"http://127.0.0.1:8080/Tutorial/examples";=20
=
tree-s=3D"eJyLjlZ3hANPW3UdhWiEiHOWq616LBAAAL3mChA"'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_ACCEPT_LANGUAGE</FONT></TH>
<TD><FONT face=3D"Courier New">'en-ca'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">GATEWAY_INTERFACE</FONT></TH>
<TD><FONT face=3D"Courier New">'CGI/1.1'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SERVER_PORT</FONT></TH>
<TD><FONT face=3D"Courier New">'8080'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_USER_AGENT</FONT></TH>
<TD><FONT face=3D"Courier New">'Mozilla/4.0 (compatible; MSIE 6.0; =
Windows=20
NT 5.0)'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">CONTENT_LENGTH</FONT></TH>
<TD><FONT face=3D"Courier New">'67'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">REMOTE_ADDR</FONT></TH>
<TD><FONT face=3D"Courier New">'192.168.2.10'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">channel.creation_time</FONT></TH>
<TD><FONT face=3D"Courier New">1036509387</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SERVER_PROTOCOL</FONT></TH>
<TD><FONT face=3D"Courier New">'HTTP/1.1'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">PATH_INFO</FONT></TH>
<TD><FONT face=3D"Courier =
New">'/Krude/Upload_FileAction'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_HOST</FONT></TH>
<TD><FONT face=3D"Courier New">'127.0.0.1:8080'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">REQUEST_METHOD</FONT></TH>
<TD><FONT face=3D"Courier New">'POST'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SCRIPT_NAME</FONT></TH>
<TD><FONT face=3D"Courier New">''</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SERVER_SOFTWARE</FONT></TH>
<TD><FONT face=3D"Courier New">'Zope/(Zope 2.6.0 (binary release, =
python=20
2.1, solaris-2.8-sparc), python 2.1.3, sunos5) =
ZServer/1.1b1'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_CACHE_CONTROL</FONT></TH>
<TD><FONT face=3D"Courier New">'no-cache'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">CONNECTION_TYPE</FONT></TH>
<TD><FONT face=3D"Courier New">'Keep-Alive'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">HTTP_REFERER</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'http://127.0.0.1:8080/Krude/Upload_FileForm'</FONT></TD></TR>
<TR vAlign=3Dtop align=3Dleft>
<TH><FONT face=3D"Courier New">SERVER_NAME</FONT></TH>
<TD><FONT=20
face=3D"Courier =
New">'gratuitous'</FONT></TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV=
><STRONG></STRONG>
<DIV><STRONG></STRONG>
<P><BR></P></FONT></DIV></FONT></FONT></BODY></HTML>
------=_NextPart_000_0030_01C284B4.F8241850--