Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Upload file using Weblogic 6.1

Status
Not open for further replies.

webspy

Programmer
Aug 3, 2001
79
IN
While i m trying to upload a file which is more than 4 kb usign DataInputStream object.
Code *********

private void uploadFunction(HttpServletRequest req,HttpServletResponse res){


String contentType = req.getContentType();
System.out.println("Content type is :: " +contentType);
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
try{
DataInputStream in = new DataInputStream(req.getInputStream());
int formDataLength = req.getContentLength();

if(formDataLength<=5000000){

byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;

while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
totalBytesRead += byteRead;
}
String file = new String(dataBytes);

String saveFile = file.substring(file.indexOf("filename=\"") + 10);

saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));



int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length;
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
if(saveFile.length()!=0){
saveFile="D:\\soft\\"+saveFile;
FileOutputStream fileOut = new FileOutputStream(saveFile);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
}


}
}catch(IOException e){
System.out.println("except.........."+e);
e.printStackTrace();
}
}

***************

The following exception has thrown. I am using weblogic 6.1 server.
*******************
java.net.ProtocolException: EOF after reading only: '16384' of: '269635' promised by
tes, out of which at least: '0' were already buffered
java.net.ProtocolException: EOF after reading only: '16384' of: '269635' promised bytes, out of whic
h at least: '0' were already buffered

*********************

The same code is working fine when i try to upload less than 4 kb files...

Please help to solve this issu.

Thanks in advance
webspy
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top