Hi,
I am using the following code to upload an image, i am able to upload the image and save in DB on Windows but the code fails somehow on Linux machine. Here is the code:
-
-
String contentType = request.getContentType ();
-
-
if ((contentType != null) && (contentType.indexOf ("multipart/form-data") >= 0)) {
-
DataInputStream in = new DataInputStream (request.getInputStream ());
-
int formDataLength = request.getContentLength ();
-
-
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;
-
-
String[] fileName = saveFile.split ("\\.");
-
String file_extension = fileName[1];
-
imageName += "."+file_extension ;
-
-
-
FileOutputStream fileOut = new FileOutputStream (imageName);
-
-
-
fileOut.write (dataBytes, startPos, (endPos - startPos));
-
fileOut.flush ();
-
fileOut.close ();
-
-
}
-
Can some one please tell me why this is so? i couldn't figure it out