mercredi 25 janvier 2017

Upload image from devide to FTP using android app

Hey I have a code that let the user pick an image from the gallery and after he chooses the image is shown in an image view, now when the user click a button it should upload the image to ftp server , but from some reason the app tells me that the location of the file I am giving is not found.

here is the ftp upload code (I execute it using asynctask)

    public UploadImage(String host,int port,String username,String password,String imagePath) {


    this.host = host;
    this.port = port;
    this.username = username;
    this.password = password;
    this.imagePath = imagePath;

}

    public  void uploadingFilestoFtp() throws IOException
{
    FTPClient con = null;

    try
    {
        con = new FTPClient();
        con.connect(host);

        if (con.login(username, password))
        {
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            Uri uri = Uri.parse(this.imagePath);
            String data = uri.getPath();

            FileInputStream in = new FileInputStream(new File(data));
            boolean result = con.storeFile("/img.png", in);
            in.close();
            if (result) Log.v("upload result", "succeeded");
            con.logout();
            con.disconnect();
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }


}

and the loading file to imageview

   loadedImage = (ImageView)findViewById(R.id.upload_image1);
    Drawable drawable = loadedImage.getDrawable();
    if(drawable.getConstantState().equals(getResources().getDrawable(R.drawable.camera_icon).getConstantState())) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "SelectPicture"), SELECT_PICTURE);
    }

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {


             selectedImageURI = data.getData();
            loadedImage = (ImageView)findViewById(R.id.upload_image1);
            loadedImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
            Glide.with(this).load(selectedImageURI)
                    .into((ImageView) findViewById(R.id.upload_image1));

            ImageView m =(ImageView)findViewById(R.id.remove_image);
            m.setFocusable(true);
            m.setVisibility(View.VISIBLE);
        }

    }
}

The imagePath String is the image uri converted to string. can anyone help me and tell me why isn't it finding the file?




Aucun commentaire:

Enregistrer un commentaire