problème d'upload d'un fichier sur I.E
Bonjour,
J'ai un script qui réalise l'upload d'un ficher à partir d'une d'une page jsp, mais le problème est que mon code ne fonctionne pas sur I.E alors que sur mozila tout fonctionne correctement.
une précision qui peut avoir son importance: mon serveur apache est insataller sous linux.
d'après ce que j'ai pu constater, mon programme rencontre un problème avec le nom du fichier(item.getName()). Sur Mozila il me donne bien le nom du fichier alors que sur I.E il me donne toute l'arborescence du fichier.
voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// check if the http request is a multipart request
// with other words check that the http request can have uploaded files
if (isMultipart) {
// ServletFileUpload servletFileUpload = new ServletFileUpload(new
// DiskFileItemFactory());
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
// Set upload parameters
// See Apache Commons FileUpload for more information
// <a href="http://jakarta.apache.org/commons/fileupload/using.html" target="_blank">http://jakarta.apache.org/commons/fileupload/using.html</a>
servletFileUpload.setSizeMax(-1);
// //System.out.println("momo je suis là...");
try {
String directory = "";
String service = "";
// Parse the request
List items = servletFileUpload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
// //System.out.println("salut momo je suis là dans le try...");
//LOG.info("session "+LoginAuthentification.session.getAttribute("UserId"));
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// the param tag directory is sent as a request parameter to
// the server
// check if the upload directory is available
if (item.isFormField()) {
String name = item.getFieldName();
//System.out.println("Item name : " + name + "\n");
if (name.equalsIgnoreCase("directory")) {
directory = item.getString();
/*System.out.println("directory = "
+ directory.toString());*/
}
if (name.equalsIgnoreCase("url")) {
url = item.getString();
//System.out.println("URL = " + url.toString());
oldUrl = url.substring(debURL.length());
}
} else {
LOG.debug("item.getName() = " + item.getName());
// the fileNames are urlencoded
LOG.debug();
String fileName = URLDecoder.decode(item.getName(),System.getProperty("file.encoding"));
//System.out.println("fileName = " + fileName);
LOG.debug("fileName = " + fileName);
chemin = BASE_DIRECTORY+ "/" + directory+ "/dev";
//System.out.println("chemin :"+chemin+"\n");
File myFile = new File(directory, fileName);
myFile = new File(chemin, myFile.getName());
// retrieve the parent file for creating the directories
File parentFile = myFile.getParentFile();
if (!parentFile.isDirectory()) {
System.out.println(parentFile
+ " n'existe pas on le cree\n");
parentFile.mkdirs();
} else {
System.out.println(parentFile + " existe \n");
}
item.write(myFile); |
merci d'avance pour votre aide
problème lors du split du fichier
Merci,
mais j'ai essayé de spliter la chaine mais je me retrouve avec une erreur à cause du caractère "\" qui doit me servir pour séparation
voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public static String decodeurExploreur(String fichier){
char sep='\\';
String[] chemin;
LOG.debug("entrer dans la fonction avec le fichier=="+fichier+" symbole de slit#### "+sep+" #####");
try{
chemin=fichier.split(""+sep);
LOG.debug("entrer dans la fonction avec le fichier=="+fichier+" symbole de slit#### "+sep+" #####");
int taille=chemin.length;
LOG.debug("taille =="+taille);
if(taille!=0){
LOG.debug("chemin[taille-1]=="+chemin[taille-1]);
return chemin[taille-1];
}
else return fichier;
}catch (Exception e) {
// TODO: handle exception
LOG.debug("problème de split avec \\");
}
return fichier;
} |
donc si quelqu'un peut me donner une idée pour corriger cette erreur mon problème serait résolut.