public int uploadFile(String sourceFileUri) {
String fileName = sourceFileUri;
HttpURLConnection conn =
null
;
DataOutputStream dos =
null
;
String lineEnd =
"\r\n"
;
String twoHyphens =
"--"
;
String boundary =
"*****"
;
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File sourceFile =
new
File(sourceFileUri);
if
(!sourceFile.isFile()) {
dialog.dismiss();
Log.e(
"uploadFile"
,
"Source File not exist :"
+imagepath);
runOnUiThread(
new
Runnable() {
public void run() {
messageText.setText(
"Source File not exist :"
+ imagepath);
}
});
return
0;
}
else
{
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();
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(
"uploadFile"
,
"HTTP Response is : "
+ serverResponseMessage +
": "
+ serverResponseCode);
if
(serverResponseCode == 200){
runOnUiThread(
new
Runnable() {
public void run() {
String msg =
"File Upload Completed.\n\n See uploaded file your server. \n\n"
;
messageText.setText(msg);
Toast.makeText(FileUpload.
this
,
"File Upload Complete."
, Toast.LENGTH_SHORT).show();
}
});
}
fileInputStream.close();
dos.flush();
dos.close();
}
catch
(MalformedURLException ex) {
dialog.dismiss();
ex.printStackTrace();
runOnUiThread(
new
Runnable() {
public void run() {
messageText.setText(
"MalformedURLException Exception : check script url."
);
Toast.makeText(FileUpload.
this
,
"MalformedURLException"
, Toast.LENGTH_SHORT).show();
}
});
Log.e(
"Upload file to server"
,
"error: "
+ ex.getMessage(), ex);
}
catch
(Exception e) {
dialog.dismiss();
e.printStackTrace();
runOnUiThread(
new
Runnable() {
public void run() {
messageText.setText(
"Got Exception : see logcat "
);
Toast.makeText(FileUpload.
this
,
"Got Exception : see logcat "
, Toast.LENGTH_SHORT).show();
}
});
Log.e(
"Upload file to server Exception"
,
"Exception : "
+ e.getMessage(), e);
}
dialog.dismiss();
return
serverResponseCode;
}
}
沒有留言:
張貼留言