2009-09-22 13 views
7

Próbowałem użyć wysyłania pliku przy użyciu Apache Commons ale następujący wyjątek rzucony

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: wniosek nie zawiera multipart/form-data lub wieloczęściowy/mieszany strumień, typ zawartości nagłówka jest null

Mój kod HTML jest

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

My JSP jest

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

    %> 

Odpowiedz

11

Postać musi być method = „POST”

+2

proszę wyjaśnić dlaczego metoda musiała „post” –

+2

Ponieważ w ten sposób, że formy wieloczęściowe działać. – skaffman

+1

Ponieważ po kliknięciu przycisku "Wyślij" formularz zbierze wszystkie dane, włącznie z plikiem (obrazem), a także zapakuje go i wyśle ​​na serwer w żądaniu http. –

Powiązane problemy