[ 
https://issues.apache.org/jira/browse/FILEUPLOAD-165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Wiedmann resolved FILEUPLOAD-165.
----------------------------------------

    Resolution: Fixed

Use response.getOutputStream(), and not response.getWriter().


> Reading an uploaded file and returning that uploaded file in the exact same 
> structure as the input file
> -------------------------------------------------------------------------------------------------------
>
>                 Key: FILEUPLOAD-165
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-165
>             Project: Commons FileUpload
>          Issue Type: Task
>    Affects Versions: 1.2
>         Environment: Windows XP Professional
>            Reporter: Barry Barrios
>            Priority: Critical
>             Fix For: 1.2.1
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I am using response.getWriter().write(new String(uploadItem.get() to write 
> the uploaded input file. The code works pretty well except the output is very 
> disorganized. I want the output to look  exactly the same as the input file, 
> in structure, the same space, the same columns, a perfect copy. However the 
> output file, is scrammbled all together. What can be done to alter this code 
> so that the input file looks like the output file.
> Sample Code Below:
> package de.herbstcampus.server;
> import java.io.IOException;
> import java.util.List;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> import org.apache.commons.fileupload.FileItem;
> import org.apache.commons.fileupload.FileItemFactory;
> import org.apache.commons.fileupload.FileUploadException;
> import org.apache.commons.fileupload.disk.DiskFileItemFactory;
> import org.apache.commons.fileupload.servlet.ServletFileUpload;
> public class FileUploadServlet extends HttpServlet {
>       private static final long serialVersionUID = 1156467149259077140L;
>       protected void doPost(HttpServletRequest request,
>                       HttpServletResponse response) throws ServletException, 
> IOException {
>               FileItem uploadItem = getFileItem(request);
>               
>               /*
>                * Note this must be 'text/html', otherwise the 
> onSubmitComplete(...)
>                * won't work properly and the browser may open a save dialog.
>                */
>               response.setContentType("text/html");
>               
>               if (uploadItem == null) {
>                       response.getWriter().write("No data");
>                       return;
>               } else {
>                       response.getWriter().write(new 
> String(uploadItem.get()));
>               }
>       }
>       @SuppressWarnings("unchecked")
>       private FileItem getFileItem(HttpServletRequest request) {
>               FileItemFactory factory = new DiskFileItemFactory();
>               ServletFileUpload upload = new ServletFileUpload(factory);
>               try {
>                       List<FileItem> items = upload.parseRequest(request);
>                       
>                       for (FileItem item: items) {
>                               if (!item.isFormField()
>                                               && 
> "uploadFormElement".equals(item.getFieldName())) {
>                                       return item;
>                               }
>                       }
>               } catch (FileUploadException e) {
>                       return null;
>               }
>               
>               return null;
>       }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to