2012-04-24 3 views
1

привет, я получаю эту ошибку, когда я отправляю форму «java.io.IOException: Коррумпированные данные формы: преждевременное завершение», это происходит, когда я добавляю этот код внутри существующего скриптлетаjava.io.IOException: Коррумпированные данные формы: преждевременное завершение

String selectedValue=request.getParameter("sel1"); 
//out.println("Selected Value is: "+selectedValue); 

String select1=request.getParameter("sel2"); 
//out.println("selected values is:"+select1); 

String concat=selectedValue+"." +select1; 
out.println(""+concat); 

мой существующий скриптлет

<%@ page import="java.io.*,java.sql.*,java.util.zip.*,com.oreilly.servlet.*" %> 
<% 
try 
{  
    //if i include here,i can retrive the values but i cant upload the file into database,shows me "java.io.IOException: Corrupt form data: premature ending " 
String selectedValue=request.getParameter("sel1"); 
//out.println("Selected Value is: "+selectedValue); 

String select1=request.getParameter("sel2"); 
//out.println("selected values is:"+select1); 

String concat=selectedValue+"." +select1; 
out.println(""+concat); 

Connection connection = null; 
String connectionURL = "jdbc:mysql://localhost:3306/ksa"; 
PreparedStatement psmnt = null; 
    MultipartRequest request2=new MultipartRequest(request,"/home/adapco/Desktop/output",1024*1024*1024); 
String filename=request2.getFilesystemName("file"); 

File f=request2.getFile("file"); 
out.println(f.exists()+"----------------"+f.getAbsolutePath()); 
out.print(filename); 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
connection = DriverManager.getConnection(connectionURL, "root", "root"); 
psmnt = connection.prepareStatement("insert into file1(file_path) values(?)"); 
psmnt.setString(1, f.getPath()); 
int s = psmnt.executeUpdate(); 

//if i include here it shows me null.null 

String selectedValue=request.getParameter("sel1"); 
//out.println("Selected Value is: "+selectedValue); 

String select1=request.getParameter("sel2"); 
//out.println("selected values is:"+select1); 

String concat=selectedValue+"." +select1; 
out.println(""+concat); 

if(s>0) 
{ 
System.out.println("Uploaded successfully !"); 
} 
else 
{ 
System.out.println("Error!"); 
} 
} 
catch(Exception e) 
{ 
    out.print("-----------error--------------"+e); 
} 
%> 

если я исключить код из существующего, он работает fine.some раз, если я включать код после улова или в конце блока Ьгу , он показывает мне null.i нужно прочитать значение индекса выпадающих списков и объединить их с точка. ошибка была «null.null». Фактический результат должен быть примером: 1.1. вот мой HTML код

<%@ page language="java" %> 
<HTML> 
    <FORM ENCTYPE="multipart/form-data" ACTION="uploadFile.jsp" METHOD=POST> 
    <center> 
    <table bgcolor=#38ACEC> 
    <tr> 
    <center><td colspan="2" align="center"><B>UPLOAD THE FILE</B><center></td> 
    </tr> 
    <tr><td colspan="2" align="center"> </td></tr> 
    <tr><td><b>Choose the file To Upload:</b></td> 
    <td><INPUT NAME="file" TYPE="file"></td> 
    </tr> 
    <tr><td><select name="sel1"> 
    <option value="1">Aerospace</option> 
    <option value="2">Automotive</option> 
    <option value="3">Energy</option> 
    <option value="4">IC Engines</option> 
    <option value="5">Wind</option> 
     <option value="6">Turbo</option> 
     <option value="7">IT</option> 
     <option value="8">Training</option> 
    </select> 
    <br> 
    <select name="sel2"> 
    <option value="1">Internal</option> 
    <option value="2">Demos</option> 
    <option value="3">Best Practice</option> 
     <option value="4">Marketing</option> 
    <option value="5">Papers & public</option> 
    <option value="6">Validation</option> 
    <option value="7">Training</option> 
     </select></td></tr> 
     <tr><td colspan="2" align="center"> </td></tr> 
     <tr><td colspan="2" align="center"><input type="submit" value="Send File"> </td></tr> 
    <table> 
    </center> 
    </FORM> 
    </html> 

ответ

1

Это очень старый пример у вас есть got.Oreilly многослойного анализатора MultipartRequest, имеющие некоторые ошибки. См. Соответствующий вопрос для обзора Corrupt form data: premature ending (Resolved). Скорее используйте Apache Commons FileUpload или просто новый сервлет 3.0, встроенный в метод request.getPart(). См. Также How to upload files in JSP/Servlet?

+0

Я знаю, но это происходит только тогда, когда я пытаюсь читать значения выпадающего меню, иначе он отлично работает для всех типов файлов. – ksa

+0

Если у вас есть запрос multipart, вы не можете использовать 'request.getParameter (" sel1 ");' который является 'HttpServletRequest'. Используйте 'request2.getParameter (" sel1 ");' –

+0

он тоже не работает ... – ksa

Смежные вопросы