2009-09-22 13 views
7

ho cercato di usare il file caricare con Apache Commons, ma la seguente eccezione gettato

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: la richiesta non contiene un multipart/form-data o multipart flusso/misto, tipo di contenuto intestazione è nullo

mio codice HTML è

codice
<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> 

mio JSP è

<% 
    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); 

    %> 

risposta

11

La forma deve essere method = "POST"

+2

chiarire il motivo per cui il metodo ha dovuto "POST" –

+2

Perché questo è il modo in cui i moduli a più lavoro. – skaffman

+1

Perché quando si fa clic sul pulsante di invio il modulo raccoglierà tutti i dati include il file (immagine) anche.e lo ha imballato e inviato al server in richiesta http .. –