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