You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Ken <ki...@gmail.com> on 2008/04/25 07:25:26 UTC
Re: [T5] Is it possible to receive uploaded files from non-tapestry
pages?
Hi, again.
I tried to using servlet for file uploading.
I wrote codes below.
Then selected a file and submitted.
But output is only like this:
Content-Type: multipart/form-data; boundary=...
Content-Length: 4699
Command: FileUpload
No "#####"-s are displayed.
I excuted same code on Tomcat, and its succeeded
(Filnames and parameters were displayed).
Why doesn't it work on Tapestry?
My tapestry is 5.0.11.
I hope your advice.
Thank you.
web.xml:
<servlet>
<servlet-name>connector</servlet-name>
<servlet-class>com.example.myapp.servlet.Connector</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>connector</servlet-name>
<url-pattern>/servlet/connector</url-pattern>
</servlet-mapping>
start.html:
<html>
<body>
<form action="/myapp/servlet/connector?Command=FileUpload"
method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit"/>
<input type="hidden" name="Type" value="Image"/>
</form>
</body>
</html>
Connector.java:
public void service(
HttpServletRequest request, HttpServletResponse responce)
throws ServletException, IOException {
responce.setContentType("text/html; charset=UTF-8");
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
factory.setSizeThreshold(1024);
upload.setSizeMax(MAX_CONTENT_SIZE * 1024);
upload.setHeaderEncoding("UTF-8");
PrintWriter out = responce.getWriter();
try {
@SuppressWarnings("unchecked")
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
out.println("#####");
if (item.isFormField()) {
out.println(item.getFieldName() + ": ");
out.println(item.getString(responce.getCharacterEncoding()));
} else {
out.println("FileName: " + item.getName());
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
out.println("Content-Type: " + request.getContentType());
out.println("Content-Length: " + request.getContentLength());
out.println("Command: " + request.getParameter("Command"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org