commons-fileupload - progress listener Frage

riseX

Mitglied
Hallo,

ich habe bereits den Beitrag von Snipex gelesen ... das leuchtet mir soweit auch alles ein ...
Meine Form sieht so aus.

Code:
        <form action="uploadcontroller" enctype="multipart/form-data" method="POST">
		<input type="file" name="uploaddatei">
		<input type="submit" value="Upload">
	</form>


Mein Servlet:

Code:
public class UploadController extends HttpServlet {

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		try {

			PrintWriter out = response.getWriter();
			// Create a factory for disk-based file items
			// Check that we have a file upload request
			boolean isMultipart = FileUploadBase.isMultipartContent(request);
			
			// Create a new file upload handler
			ServletFileUpload upload = new ServletFileUpload();

			// Parse the request
			FileItemIterator iter = upload.getItemIterator(request);
			while (iter.hasNext()) {
				FileItemStream item = iter.next();
				String name = item.getFieldName();
				InputStream stream = item.openStream();
				OutputStream outstream = new FileOutputStream("C:\\test.tmp");
				if (item.isFormField()) {
					//
				} else {

					byte[] b = new byte[ 8192 ];
					int len;
					while ((len = stream.read(b)) > 0) {
						outstream.write(b, 0, len);
					}
					out.close();
					stream.close();
				}
			}
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Wenn da irgendwelche großen Schnitzer drin sein sollte, bitte drauf hinweisen ... ich bin da noch mehr so Newbie.

Also ... er läd das File aber soweit hoch ... das ist kein Problem ... meine Frage lautet nun:

Wie baue ich den ProgressListener ein ... und ich will das Neuladen der Seite vermeiden ... also müsste ich doch von der Form absehen oder? Zumindest vom submit.

quasi die Datei auswählen ... und darunter soll der ProgressListener erscheinen und mir den Uploadstatus anzeigen. Ist das Möglich?

Danke

Gruß vom riseX
 
Zurück