Search...
FAQs
Subscribe
Pie
FAQs
Recent topics
Flagged topics
Hot topics
Best topics
Search...
Search within Android
Search Coderanch
Advance search
Google search
Register / Login
Post Reply
Bookmark Topic
Watch Topic
New Topic
programming forums
Java
Mobile
Certification
Databases
Caching
Books
Engineering
Micro Controllers
OS
Languages
Paradigms
IDEs
Build Tools
Frameworks
Application Servers
Open Source
This Site
Careers
Other
Pie Elite
all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Campbell Ritchie
Jeanne Boyarsky
Ron McLeod
Paul Clapham
Liutauras Vilda
Sheriffs:
paul wheaton
Rob Spoor
Devaka Cooray
Saloon Keepers:
Stephan van Hulst
Tim Holloway
Carey Brown
Frits Walraven
Tim Moores
Bartenders:
Mikalai Zaikin
Forum:
Android
how to transfer images to ftp server in android
Suzzane Pinto
Ranch Hand
Posts: 214
posted 12 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
where in my code should i do that...?
Tim Moores
Saloon Keeper
Posts: 7585
176
posted 12 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
The entire upload should be handled in the AsyncTask. I suggest to start by getting AsyncTask to work in general (maybe in some other toy app of yours that you know to work correctly) before you start using it in this app.
Suzzane Pinto
Ranch Hand
Posts: 214
posted 12 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
i have made some changes in my code where iam trying to implement asynctask
package com.myapp.test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.InetAddress; import java.net.SocketException; import java.net.URL; import java.net.UnknownHostException; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import java.io.*; import org.apache.commons.net.ftp.FTPClient; import org.json.JSONObject; //import org.apache.commons.net.ftp.FTPClient; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { protected static final int SELECT_PICTURE = 0; private static final int UPLOAD_FILES_REQUEST = 0; public static final String SERVER = "xx.xx.xx.xxx"; public static final String USERNAME = "ixxxx"; public static final String PASSWORD = "xxxxx"; private static final String PATH = null; public static String var; TextView textTargetUri; Handler progressHandler; public ProgressDialog progDailog; //public FTPClient mFTPClient = null; boolean status = false; Context curContxt; String i,s; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button buttonLoadImage = (Button)findViewById(R.id.loadimage); textTargetUri = (TextView)findViewById(R.id.targeturi); buttonLoadImage.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); // intent.putExtra("command_type", "upload"); // intent.putExtra("progress_title", "Uploading files ..."); // startActivityForResult(intent, UPLOAD_FILES_REQUEST); startActivityForResult(Intent.createChooser(intent, "Click Picture To Export"), SELECT_PICTURE); }}); } public static String getLastBitFromUrl(final String url){ // return url.replaceFirst("[^?]*/(.*?)(?:\\?.*)","$1);" <-- incorrect return url.replaceFirst(".*/([^/?]+).*", "$1"); } /* public boolean onKeyDown(int keyCode, KeyEvent event) { progDailog = ProgressDialog.show(curContxt, "Progress dialogue sample ", "ceveni.com please wait....", true); new Thread() { public void run() { try{ // just doing some long operation sleep(5000); } catch (Exception e) { } handler.sendEmptyMessage(0); progDailog.dismiss(); } }.start(); return status; }*/ private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { //txt.setText("Processing Done"); } }; protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK){ Uri targetUri = data.getData(); String[] projection = {MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(targetUri, projection, null, null, null); int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); //return cursor.getString(column_index); textTargetUri.setText(cursor.getString(column_index)); String var=cursor.getString(column_index); // textTargetUri.setText("connected"+var); // String img=var.substring(8); /*System.out.println(getLastBitFromUrl( var));*/ /*progress rate*/ i= getLastBitFromUrl(var); progDailog = ProgressDialog.show(MainActivity.this, "Uploading", "Please wait...", true); new ImageUploadTask().execute(i); textTargetUri.setText(i); } } class ImageUploadTask extends AsyncTask <String, Void, String>{ //private final ProgressDialog progDailog= new ProgressDialog(MainActivity.this); /* protected void onPreExecute() { progDailog.setMessage("Uploading..."); progDailog.show(); }*/ @Override protected String doInBackground(String...args) { FTPClient ftpClient = new FTPClient(); s="abc"; try { ftpClient.connect(InetAddress.getByName(SERVER)); ftpClient.login(USERNAME, PASSWORD); /* Toast.makeText(getApplicationContext(), getLastBitFromUrl( var), Toast.LENGTH_LONG).show();*/ //ftpClient.changeWorkingDirectory(PATH); // (ftpClient.getReplyString().contains("250")) ftpClient.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE); BufferedInputStream buffIn = null; buffIn = new BufferedInputStream(new FileInputStream(var)); ftpClient.enterLocalPassiveMode(); ProgressInputStream progressInput = new ProgressInputStream(buffIn, progressHandler); boolean result = ftpClient.storeFile(i, progressInput); /*Toast.makeText(getApplicationContext(), "image uploaded to the server", Toast.LENGTH_LONG).show(); */ // buffIn.close(); //ftpClient.logout(); // ftpClient.disconnect(); //s = new Boolean(result).toString(); } catch (SocketException e) { e.printStackTrace(); // Log.e(SorensonApplication.TAG, e.getStackTrace().toString()); } catch (UnknownHostException e) { e.printStackTrace(); //Log.e(SorensonApplication.TAG, e.getStackTrace().toString()); } catch (IOException e) { //Log.e(SorensonApplication.TAG, e.getStackTrace().toString()); } catch (NullPointerException e) { e.printStackTrace(); //Log.e(SorensonApplication.TAG, e.getStackTrace().toString()); } // TODO Auto-generated method stub return s; } protected void onProgressUpdate(Void... unsued) { } protected void onPostExecute(String sResponse) { try { if (progDailog.isShowing()) { Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); progDailog.dismiss(); } if (sResponse != null) { Toast.makeText(getApplicationContext(), sResponse, Toast.LENGTH_SHORT).show(); JSONObject JResponse = new JSONObject(sResponse); int success = JResponse.getInt("SUCCESS"); String message = JResponse.getString("MESSAGE"); if (success == 0) { Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "Photo uploaded successfully", Toast.LENGTH_SHORT).show(); //caption.setText(""); } } } catch (Exception e) { /* Toast.makeText(getApplicationContext(), getString(R.string.exception_message), Toast.LENGTH_LONG).show();*/ Log.e(e.getClass().getName(), e.getMessage(), e); } } } }
logcat says:
03-15 15:36:29.254: I/global(499): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required. 03-15 15:36:29.314: I/global(499): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required. 03-15 15:36:30.934: W/System.err(499): java.lang.NullPointerException 03-15 15:36:30.934: W/System.err(499): at java.io.FileInputStream.<init>(FileInputStream.java:77) 03-15 15:36:30.934: W/System.err(499): at java.io.FileInputStream.<init>(FileInputStream.java:130) 03-15 15:36:30.934: W/System.err(499): at com.myapp.test.MainActivity$ImageUploadTask.doInBackground(MainActivity.java:183) 03-15 15:36:30.934: W/System.err(499): at com.myapp.test.MainActivity$ImageUploadTask.doInBackground(MainActivity.java:1) 03-15 15:36:30.944: W/System.err(499): at android.os.AsyncTask$2.call(AsyncTask.java:185) 03-15 15:36:30.944: W/System.err(499): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 03-15 15:36:30.944: W/System.err(499): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 03-15 15:36:30.944: W/System.err(499): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 03-15 15:36:30.944: W/System.err(499): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 03-15 15:36:30.944: W/System.err(499): at java.lang.Thread.run(Thread.java:1096) 03-15 15:36:30.974: E/org.json.JSONException(499): A JSONObject text must begin with '{' at character 1 of abc 03-15 15:36:30.974: E/org.json.JSONException(499): org.json.JSONException: A JSONObject text must begin with '{' at character 1 of abc 03-15 15:36:30.974: E/org.json.JSONException(499): at org.json.JSONTokener.syntaxError(JSONTokener.java:448) 03-15 15:36:30.974: E/org.json.JSONException(499): at org.json.JSONObject.<init>(JSONObject.java:178) 03-15 15:36:30.974: E/org.json.JSONException(499): at org.json.JSONObject.<init>(JSONObject.java:246) 03-15 15:36:30.974: E/org.json.JSONException(499): at com.myapp.test.MainActivity$ImageUploadTask.onPostExecute(MainActivity.java:232) 03-15 15:36:30.974: E/org.json.JSONException(499): at com.myapp.test.MainActivity$ImageUploadTask.onPostExecute(MainActivity.java:1) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.os.AsyncTask.finish(AsyncTask.java:417) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.os.AsyncTask.access$300(AsyncTask.java:127) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.os.Handler.dispatchMessage(Handler.java:99) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.os.Looper.loop(Looper.java:123) 03-15 15:36:30.974: E/org.json.JSONException(499): at android.app.ActivityThread.main(ActivityThread.java:4363) 03-15 15:36:30.974: E/org.json.JSONException(499): at java.lang.reflect.Method.invokeNative(Native Method) 03-15 15:36:30.974: E/org.json.JSONException(499): at java.lang.reflect.Method.invoke(Method.java:521) 03-15 15:36:30.974: E/org.json.JSONException(499): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 03-15 15:36:30.974: E/org.json.JSONException(499): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 03-15 15:36:30.974: E/org.json.JSONException(499): at dalvik.system.NativeStart.main(Native Method)
If tomatoes are a fruit, then ketchup must be a jam. Taste this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
reply
◄
1
2
Bookmark Topic
Watch Topic
New Topic
Boost this thread!
Similar Threads
Is there any certification course in Andriod ?
Is it a good desicion to learn Andriod
Does Android Support SVG ?
how to write ftp code in android
Is andriod an open source?
More...