2012-04-24 2 views
1

salut je reçois cette erreur lorsque je soumets le formulaire "java.io.IOException: données de formulaire corrompu: fin prématurée", il arrive quand j'ajoute ce code à l'intérieur de l'existant scriptletjava.io.IOException: données de formulaire corrompu: fin prématurée

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

mon scriptlet existant

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

si j'exclus le code de l'existant, il fonctionne fois fine.some si j'inclure le code après la prise ou à la fin du bloc d'essai , il me montre null.i besoin de lire la valeur d'index des listes déroulantes et de les concaténer avec un point l'erreur était "null.null" .la sortie réelle devrait être un exemple: 1.1. ici est mon code 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> 

Répondre

1

Ceci est par exemple très ancien que vous avez analyseur got.Oreilly multipart MultipartRequest avoir quelques bugs. Voir la question connexe pour un aperçu Corrupt form data: premature ending (Resolved). Utilisez plutôt Apache Commons FileUpload ou seulement le nouveau Servlet 3.0 intégré dans la méthode request.getPart(). Voir aussi How to upload files in JSP/Servlet?

+0

Je sais mais cela n'arrive que lorsque j'essaie de lire des valeurs déroulantes, sinon cela fonctionne très bien pour tout type de taille de fichier. – ksa

+0

Lorsque vous avez une requête en plusieurs parties, vous ne pouvez pas utiliser 'request.getParameter (" sel1 ");' qui est 'HttpServletRequest'. Utilisez 'request2.getParameter (" sel1 ");' –

+0

cela ne fonctionne pas non plus ... – ksa

Questions connexes