2009-09-22 7 views
7

j'ai essayé d'utiliser le téléchargement de fichiers en utilisant Apache Commons, mais l'exception suivante jeté

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: la demande ne contient pas de multipart/form-data ou multipart/flux mixtes, en-tête de type de contenu est nul

Mon code html est

<form name="inp" action="upload.jsp" method="get" onsubmit="return valid();" enctype="multipart/form-data"> 
<table align="center" cellspacing="2"> 

    <tr><td><font size="5" color="#E41B17">Select File</font> </td> 
<td><input type="file" name="infile"></td> 
</tr> 
<tr><td><font size="5" color="#E41B17">Target File Name</font></td> 
<td><input type="text" size="20" name="filename"></input></td> 
</tr> 
<tr></tr> 
<tr><td colspan="2" align="center"><input type=submit value="Upload" ></td></tr> 
</table> 
<br></br> 
<center> 
<a href="index.html"><font color="#E41B17">HOME</font></a> 
</center> 
</form> 

code Ma JSP est

<% 
    String user = (String)session.getAttribute("uname"); 
    String f = request.getParameter("filename"); 

    DiskFileUpload upload = new DiskFileUpload();   
    boolean isMultipart=upload.isMultipartContent(request); 


    upload.setSizeMax(1048576);  
    List items = upload.parseRequest(request); 
    FileItem file = (FileItem) items.get(0); 

    String source = file.getName(); 
     String delim="\\"; 
    String str=""; 
    File propfile=new File("C:\\eclipse_practise\\fileupload\\WebContent\\path.properties"); 

    BufferedInputStream propbuf=new BufferedInputStream(new FileInputStream(propfile)); 

    Properties path=new Properties(); 

    path.load(propbuf); 

    String serverlocation=path.getProperty("Server_path"); 

    session.setAttribute("storelocation",serverlocation); 

    StringTokenizer st = new StringTokenizer(source,delim); 

    while(st.hasMoreTokens()) 
    {       
     str=st.nextToken(); 
    } 

    FileItem name = (FileItem) items.get(1); 

    String target = name.getString(); 

    File outfile = new File(serverlocation+target); 

    file.write(outfile); 

     session.setAttribute("filename",target); 

    %> 

Répondre

11

Le formulaire doit être method = « POST »

+2

s'il vous plaît expliquer pourquoi la méthode devait « POST » –

+2

Parce que c'est la façon que les liasses de travail. – skaffman

+1

Parce que lorsque vous cliquez sur le bouton Soumettre le formulaire va collecter toutes les données include fichier (Image) aussi. Et emballé et envoyé au serveur dans la requête http .. –

Questions connexes