Hello Everybody,
During 2 days, I was testing FileUpload on IE and it never work. After that, I
tried on Firefox and it's works perfectly.
Can you tell me why and how to resolve this problem ?
It's a really pain in an ... :)
Thank you.
Maxime
Here the form :
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<h1>Upload de Fichier</h1>
<form name="upload" method="post" action="/UploadFileServlet"
enctype="multipart/form-data" >
Upload File:<input type="file" name="source" size="30">
<input type="submit" name="submitFile" value="Upload" title="Upload">
</form>
</BODY>
</HTML>
Here the Servlet :
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.*;
public class UploadFileServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println ("Uploading-Servlet");
try{
// Create a new file upload handler
DiskFileUpload upload = new DiskFileUpload();
// Set upload parameters
int yourMaxMemorySize = 512 * 1024 * 8;
int yourMaxRequestSize = 1024 * 1024 * 8;
String yourTempDirectory = "c:\\";
upload.setSizeThreshold(yourMaxMemorySize);
upload.setSizeMax(yourMaxRequestSize);
upload.setRepositoryPath(yourTempDirectory);
//Parse the request
List items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// Process a regular form field
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
}
// Process a file upload
else {
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
File uploadedFile = new File(yourTempDirectory +
fileName);
item.write(uploadedFile);
}
}
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}