public
static
int
upLoad2Server(String sourceFileUri)
{
String fileName = sourceFileUri;
int
serverResponseCode =
0
;
HttpURLConnection conn =
null
;
DataOutputStream dos =
null
;
DataInputStream inStream =
null
;
String lineEnd =
"\r\n"
;
String twoHyphens =
"--"
;
String boundary =
"*****"
;
int
bytesRead, bytesAvailable, bufferSize;
byte
[] buffer;
int
maxBufferSize =
1
*
1024
*
1024
;
String responseFromServer =
""
;
File sourceFile =
new
File(sourceFileUri);
if
(!sourceFile.isFile()) {
Log.e(
"Huzza"
,
"Source File Does not exist"
);
return
0
;
}
try
{
FileInputStream fileInputStream =
new
FileInputStream(sourceFile);
URL url =
new
URL(upLoadServerUri);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(
true
);
conn.setDoOutput(
true
);
conn.setUseCaches(
false
);
conn.setRequestMethod(
"POST"
);
conn.setRequestProperty(
"Connection"
,
"Keep-Alive"
);
conn.setRequestProperty(
"ENCTYPE"
,
"multipart/form-data"
);
conn.setRequestProperty(
"Content-Type"
,
"multipart/form-data;boundary="
+ boundary);
conn.setRequestProperty(
"uploaded_file"
, fileName);
dos =
new
DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes(
"Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ fileName +
"\""
+ lineEnd);
dos.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();
Log.i(
"Huzza"
,
"Initial .available : "
+ bytesAvailable);
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer =
new
byte
[bufferSize];
bytesRead = fileInputStream.read(buffer,
0
, bufferSize);
while
(bytesRead >
0
) {
dos.write(buffer,
0
, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer,
0
, bufferSize);
}
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
serverResponseCode = conn.getResponseCode();
String serverResponseMessage = conn.getResponseMessage();
Log.i(
"Upload file to server"
,
"HTTP Response is : "
+ serverResponseMessage +
": "
+ serverResponseCode);
Log.i(
"Upload file to server"
, fileName +
" File is written"
);
fileInputStream.close();
dos.flush();
dos.close();
}
catch
(MalformedURLException ex) {
ex.printStackTrace();
Log.e(
"Upload file to server"
,
"error: "
+ ex.getMessage(), ex);
}
catch
(Exception e) {
e.printStackTrace();
}
try
{
BufferedReader rd =
new
BufferedReader(
new
InputStreamReader(conn
.getInputStream()));
String line;
while
((line = rd.readLine()) !=
null
) {
Log.i(
"Huzza"
,
"RES Message: "
+ line);
}
rd.close();
}
catch
(IOException ioex) {
Log.e(
"Huzza"
,
"error: "
+ ioex.getMessage(), ioex);
}
return
serverResponseCode;
}