Upload images,audio,video,mp3,doc,pdf all type of file on a server.
Please follow this step:
Step1) Create a Activity: ImageUploadActivity.class
package com.vin.uploadfile;
import java.io.File;
import java.io.InputStream;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
public class ImageUploadActivity extends Activity {
String desDirectory="/uploadtest/";
Button uploagimage;
InputStream in;
String sourceUrl,filename;
private Uri mImageCaptureUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uploagimage=(Button) findViewById(R.id.button1);
uploagimage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(isNetworkAvailable())
{
getFileImage();
}else{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Internet connectivity failure.Try again!");
b.show();
}
}
});
}
public void getFileImage()
{
final String [] items = new String [] {"File", "Image"};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (getApplicationContext(), android.R.layout.select_dialog_item,items);
AlertDialog.Builder builder = new AlertDialog.Builder(ImageUploadActivity.this);
builder.setTitle("Select");
builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int item ) {
if (item == 0) {
Intent intent = new Intent();
intent.setType("file/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), Constant.PICK_FROM_FILE);
} else {
selectImage();
}
}
} );
final AlertDialog dialog = builder.create();
dialog.show();
dialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
}
});
}
public void selectImage()
{
final String [] items = new String [] {"From Camera", "From SD Card"};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (getApplicationContext(), android.R.layout.select_dialog_item,items);
AlertDialog.Builder builder = new AlertDialog.Builder(ImageUploadActivity.this);
builder.setTitle("Select");
builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int item ) {
if (item == 0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + "_FromCamera.jpg");
Uri mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, Constant.PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
// dialog.cancel();
} else {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), Constant.PICK_FROM_FILE);
}
}
} );
final AlertDialog dialog = builder.create();
dialog.show();
dialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
}
});
}
public String getPath(Uri uri, Activity activity) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = activity.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
sourceUrl="";
filename="";
if (requestCode == Constant.PICK_FROM_FILE)
{
if (resultCode == Activity.RESULT_OK)
{
mImageCaptureUri = data.getData();
try
{
sourceUrl = getPath(mImageCaptureUri,ImageUploadActivity.this); //from Gallery
}
catch(Exception e)
{
sourceUrl = mImageCaptureUri.getPath();
Log.i("check image attach or not", e.toString());
}
if (sourceUrl == null)
{
sourceUrl = mImageCaptureUri.getPath(); //from File Manager
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis())+k;
new UploadTask().execute();
}
if (sourceUrl != null)
{
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis()) +k;
new UploadTask().execute();
}
}
}
else if(requestCode == Constant.PICK_FROM_CAMERA)
{
if (resultCode == Activity.RESULT_OK)
{
mImageCaptureUri = data.getData();
sourceUrl= mImageCaptureUri.getPath();
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis()) +k;
new UploadTask().execute();
}
}
}
class UploadTask extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
Boolean uploadStat;
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(ImageUploadActivity.this);
pDialog.setMessage("Uploading...");
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
uploadStat=new UploadToFtp().ftpUpload1(sourceUrl, filename, desDirectory);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(uploadStat)
{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Upload Successful");
b.show();
}else{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Upload Failed.");
b.show();
}
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
if (null != pDialog && pDialog.isShowing()) {
pDialog.dismiss();
}
super.onPostExecute(result);
}
}
// Check Internet Connection!!!
public boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}
import java.io.File;
import java.io.InputStream;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
public class ImageUploadActivity extends Activity {
String desDirectory="/uploadtest/";
Button uploagimage;
InputStream in;
String sourceUrl,filename;
private Uri mImageCaptureUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uploagimage=(Button) findViewById(R.id.button1);
uploagimage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(isNetworkAvailable())
{
getFileImage();
}else{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Internet connectivity failure.Try again!");
b.show();
}
}
});
}
public void getFileImage()
{
final String [] items = new String [] {"File", "Image"};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (getApplicationContext(), android.R.layout.select_dialog_item,items);
AlertDialog.Builder builder = new AlertDialog.Builder(ImageUploadActivity.this);
builder.setTitle("Select");
builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int item ) {
if (item == 0) {
Intent intent = new Intent();
intent.setType("file/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), Constant.PICK_FROM_FILE);
} else {
selectImage();
}
}
} );
final AlertDialog dialog = builder.create();
dialog.show();
dialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
}
});
}
public void selectImage()
{
final String [] items = new String [] {"From Camera", "From SD Card"};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (getApplicationContext(), android.R.layout.select_dialog_item,items);
AlertDialog.Builder builder = new AlertDialog.Builder(ImageUploadActivity.this);
builder.setTitle("Select");
builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int item ) {
if (item == 0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + "_FromCamera.jpg");
Uri mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, Constant.PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
// dialog.cancel();
} else {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), Constant.PICK_FROM_FILE);
}
}
} );
final AlertDialog dialog = builder.create();
dialog.show();
dialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
}
});
}
public String getPath(Uri uri, Activity activity) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = activity.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
sourceUrl="";
filename="";
if (requestCode == Constant.PICK_FROM_FILE)
{
if (resultCode == Activity.RESULT_OK)
{
mImageCaptureUri = data.getData();
try
{
sourceUrl = getPath(mImageCaptureUri,ImageUploadActivity.this); //from Gallery
}
catch(Exception e)
{
sourceUrl = mImageCaptureUri.getPath();
Log.i("check image attach or not", e.toString());
}
if (sourceUrl == null)
{
sourceUrl = mImageCaptureUri.getPath(); //from File Manager
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis())+k;
new UploadTask().execute();
}
if (sourceUrl != null)
{
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis()) +k;
new UploadTask().execute();
}
}
}
else if(requestCode == Constant.PICK_FROM_CAMERA)
{
if (resultCode == Activity.RESULT_OK)
{
mImageCaptureUri = data.getData();
sourceUrl= mImageCaptureUri.getPath();
String arr[] = sourceUrl.split("/");
int i;
String k = null;
for(i=0;i<arr.length;i++)
{
k=arr[i];
}
filename="_"+String.valueOf(System.currentTimeMillis()) +k;
new UploadTask().execute();
}
}
}
class UploadTask extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
Boolean uploadStat;
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(ImageUploadActivity.this);
pDialog.setMessage("Uploading...");
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
uploadStat=new UploadToFtp().ftpUpload1(sourceUrl, filename, desDirectory);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(uploadStat)
{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Upload Successful");
b.show();
}else{
AlertDialog.Builder b=new AlertDialog.Builder(ImageUploadActivity.this);
b.setMessage("Upload Failed.");
b.show();
}
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
if (null != pDialog && pDialog.isShowing()) {
pDialog.dismiss();
}
super.onPostExecute(result);
}
}
// Check Internet Connection!!!
public boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}
Step 2) Create Class: UploadToFtp.class
package com.vin.uploadfile;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import android.app.ProgressDialog;
import android.widget.ProgressBar;
public class UploadToFtp {
public FTPClient mFTPClient = null;
public boolean ftpUpload1(String srcFilePath,String desFileName,String desDirectory)
{
String host="ftphost";
String username="username";
String password="password";
int port=21;
mFTPClient = new FTPClient();
boolean status = false;
try {
mFTPClient.connect(host, port);// // connecting to the host
mFTPClient.login(username, password);// //Authenticate using username and password
mFTPClient.changeWorkingDirectory(desDirectory); //change directory to that directory where image will be uploaded
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
BufferedInputStream buffIn = null;
File file=new File(srcFilePath);
buffIn = new BufferedInputStream(new FileInputStream(file),8192);
mFTPClient.enterLocalPassiveMode();
status = mFTPClient.storeFile(desFileName, buffIn);
buffIn.close();
mFTPClient.logout();
mFTPClient.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return status;
}
}
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import android.app.ProgressDialog;
import android.widget.ProgressBar;
public class UploadToFtp {
public FTPClient mFTPClient = null;
public boolean ftpUpload1(String srcFilePath,String desFileName,String desDirectory)
{
String host="ftphost";
String username="username";
String password="password";
int port=21;
mFTPClient = new FTPClient();
boolean status = false;
try {
mFTPClient.connect(host, port);// // connecting to the host
mFTPClient.login(username, password);// //Authenticate using username and password
mFTPClient.changeWorkingDirectory(desDirectory); //change directory to that directory where image will be uploaded
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
BufferedInputStream buffIn = null;
File file=new File(srcFilePath);
buffIn = new BufferedInputStream(new FileInputStream(file),8192);
mFTPClient.enterLocalPassiveMode();
status = mFTPClient.storeFile(desFileName, buffIn);
buffIn.close();
mFTPClient.logout();
mFTPClient.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return status;
}
}
Step 3) Create Class: Constant.class
package com.vin.uploadfile;
public class Constant {
public static int PICK_FROM_CAMERA=1;
public static int PICK_FROM_FILE=2;
}
public class Constant {
public static int PICK_FROM_CAMERA=1;
public static int PICK_FROM_FILE=2;
}
No comments:
Post a Comment