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:
Can some one please tell me why this is so? i couldn't figure it out
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:
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 ();
}
Comment