2009-09-22 27 views
7

tôi cố gắng sử dụng các tập tin tải lên sử dụng Apache Commons nhưng ngoại lệ sau ném

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: yêu cầu không chứa một multipart/form-data hoặc multipart/dòng hỗn hợp, kiểu nội dung tiêu đề là null

mã html của tôi là

<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 code đang

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

    %> 

Trả lời

11

Hình thức phải là method = "POST"

+2

xin vui lòng làm rõ lý do tại sao phương pháp này đã phải "POST" –

+2

Bởi vì đó là cách mà các hình thức nhiều phần dữ liệu làm việc. – skaffman

+1

Vì khi bạn bấm nút gửi, biểu mẫu sẽ thu thập tất cả dữ liệu bao gồm tệp (Hình) cũng như đóng gói và gửi nó đến máy chủ theo yêu cầu http: –

Các vấn đề liên quan