Java 将多个图像上载到FTP服务器时FileNotFoundException

Java 将多个图像上载到FTP服务器时FileNotFoundException,java,android,ftp,Java,Android,Ftp,从图库中选择多个图像后,我想将它们上载到ftp服务器。在上传过程中,我发现以下错误: “java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20150724_220209.jpg/storage/emulated/0/DCIM/Screenshot/Screenshot_2015-08-04-14-47-38.png” 有人能帮忙吗 public类MainActivity扩展活动实现View.OnClickListe

从图库中选择多个图像后,我想将它们上载到ftp服务器。在上传过程中,我发现以下错误:

“java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20150724_220209.jpg/storage/emulated/0/DCIM/Screenshot/Screenshot_2015-08-04-14-47-38.png”

有人能帮忙吗

public类MainActivity扩展活动实现View.OnClickListener{
私人线路布局图;
私人按钮btnAddPhots;
私人按钮btnsaviemages;
私有ArrayList图像列表;
私有位图;
私有位图的大小;
私有最终整数选取图像倍数=1;
静态最终字符串FTP_HOST=“”;
静态最终字符串FTP_USER=“”;
静态最终字符串FTP_PASS=“”;
字符串j;
Uri;
字符串[]th;
字符串str;
字符串picturepath,currentpath;
按钮b;
字符串r;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
如果(android.os.Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(策略);
}
lnrImages=(线性布局)findViewById(R.id.lnrImages);
btnAddPhots=(按钮)findViewById(R.id.btnAddPhots);
btnsaviemages=(按钮)findViewById(R.id.btnsaviemages);
b=(按钮)findViewById(R.id.btnsaviemages1);
btnAddPhots.setOnClickListener(此);
btnsavimages.setOnClickListener(此);
}
@凌驾
公共void onClick(视图){
开关(view.getId()){
案例R.id.btnAddPhots:
意向意向=新意向(MainActivity.this、CustomPhotoGalleryActivity.class);
startActivityForResult(意图、拾取图像或倍数);
打破
案例R.id.btnsaviemages:
if(imagesPathList!=null){
如果(imagesPathList.size()>=1){
文件f=新文件(“+r”);
Log.e(“文件”和“+f”);
doFileUpload(f);
Log.d(“保存图像”,“图像+图像列表”);
Toast.makeText(MainActivity.this,imagesPathList.size()+“未选择任何图像”,Toast.LENGTH_SHORT.show();
}否则{
Toast.makeText(MainActivity.this,imagesPathList.size()+“未选择任何图像”,Toast.LENGTH_SHORT.show();
}
}否则{
Toast.makeText(MainActivity.this,“未选择任何图像”,Toast.LENGTH_SHORT.show();
}
打破
}
}
公共文件上传(文件f){
FTPClient client=新的FTPClient();
试一试{
client.connect(FTP_主机,21);
Log.e(“clientconnect”,即“+客户端”);
客户端登录(FTP用户,FTP通行证);
Log.e(“clientlogin”,即“+client”);
setType(FTPClient.TYPE_二进制文件);
Log.e(“客户端类型”,“客户端+客户端”);
client.changeditory(“/real/”);
Log.i(“,”$$$$$”+(“/real/”);
//int reply=client.getReplyCode();
client.upload(f,新的MyTransferListener());
//Log.e(“文件名上传”,“照片文件”);
Log.e(“clientupload”,即“+客户端”);
//Log.e(“文件”,“文件名+文件名”);
}捕获(例外e){
e、 printStackTrace();
试一试{
client.disconnect(true);
}捕获(异常e2){
e2.printStackTrace();
}
}
}
公共类MyTransferListener实现FTPDataTransferListener{
已开始公开作废(){
//btn.setVisibility(视图已消失);
//转移开始了
Toast.makeText(getApplicationContext(),“已开始上载…”,
吐司。长度(短)。show();
//System.out.println(“已开始上载…”);
}
已转移公共无效(整数长度){
//但自上次以来,其他长度字节已被传输
//这个
//方法被调用
Toast.makeText(getApplicationContext(),
“已转移…”长度,吐司。长度(短)。显示();
//System.out.println(“传输…”+长度);
}
已完成公开作废(){
//btn.setVisibility(视图可见);
//转移完成
Toast.makeText(getApplicationContext(),“已完成…”,
吐司。长度(短)。show();
//System.out.println(“已完成…”);
}
公共作废中止(){
//btn.setVisibility(视图可见);
//传输中止
Toast.makeText(getApplicationContext(),
“传输已中止,请重试…”,
吐司。长度(短)。show();
//System.out.println(“中止…”);
}
public void失败(){
//btn.setVisibility(视图可见);
//传输失败
System.out.println(“失败…”);
}
//开玩笑。
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
如果(requestCode==PICK\u IMAGE\u MULTIPLE&&resultCode==Activity.RESULT\u确定
&&空!=数据){
//uri=data.getData();
//System.out.println(“当前映像路径为------>”+getRealPathFromURI(uri));
imagesPathList=newarraylist();
字符串[]imagesPath=data.getStringExtra(“数据”).split(“\\\\”);
试一试{
犯罪
Public class MainActivity extends Activity implements View.OnClickListener {

private LinearLayout lnrImages;
private Button btnAddPhots;
private Button btnSaveImages;
private ArrayList<String> imagesPathList;
private Bitmap yourbitmap;
private Bitmap resized;
private final int PICK_IMAGE_MULTIPLE = 1;
static final String FTP_HOST = "";
static final String FTP_USER = "";
static final String FTP_PASS = "";
String j;
Uri uri;    
String str;
String picturepath, currentpath;
Button b;
String r;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    lnrImages = (LinearLayout) findViewById(R.id.lnrImages);
    btnAddPhots = (Button) findViewById(R.id.btnAddPhots);
    btnSaveImages = (Button) findViewById(R.id.btnSaveImages);
    b = (Button) findViewById(R.id.btnSaveImages1);
    btnAddPhots.setOnClickListener(this);
    btnSaveImages.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
    case R.id.btnAddPhots:
        Intent intent = new Intent(MainActivity.this,
                CustomPhotoGalleryActivity.class);
        startActivityForResult(intent, PICK_IMAGE_MULTIPLE);
        break;
    case R.id.btnSaveImages:
        if (imagesPathList != null) {
            if (imagesPathList.size() >= 1) {
                for (int i = 0; i < imagesPath.length; i++) {

                    String strImg = imagesPath[i];
                    File f = new File("" + strImg);
                    Log.e("File", "" + f);
                    doFileUpload(f);
                    Log.d("saveimages", "" + imagesPathList);
                }
                Toast.makeText(
                        MainActivity.this,
                        imagesPathList.size()
                                + " no of images are selected",
                        Toast.LENGTH_SHORT).show();

            } else {
                Toast.makeText(
                        MainActivity.this,
                        imagesPathList.size() + " no of image are selected",
                        Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(MainActivity.this, " no images are selected",
                    Toast.LENGTH_SHORT).show();
        }
        break;

}
}
public void doFileUpload(File f) {
    FTPClient client = new FTPClient();

    try {
        client.connect(FTP_HOST, 21);
        Log.e("clientconnect", "" + client);
        client.login(FTP_USER, FTP_PASS);
        Log.e("clientlogin", "" + client);
        client.setType(FTPClient.TYPE_BINARY);
        Log.e("clienttype", "" + client);
        client.changeDirectory("/ramesh2/");
        Log.i("", "$$$$$$$$$$$$$$$$$" + ("/ramesh2/"));
        // int reply = client.getReplyCode();

        client.upload(f, new MyTransferListener());

        // Log.e("filenameupload", "" + photoFile);
        Log.e("clientupload", "" + client);
        // Log.e("file",""+fileName);

    } catch (Exception e) {
        e.printStackTrace();
        try {
            client.disconnect(true);
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }

}
public class MyTransferListener implements FTPDataTransferListener {

    public void started() {

        // btn.setVisibility(View.GONE);
        // Transfer started
        Toast.makeText(getApplicationContext(), " Upload Started ...",
                Toast.LENGTH_SHORT).show();
        // System.out.println(" Upload Started ...");
    }

    public void transferred(int length) {

        // Yet other length bytes has been transferred since the last time
        // this
        // method was called
        Toast.makeText(getApplicationContext(),
                " transferred ..." + length, Toast.LENGTH_SHORT).show();
        // System.out.println(" transferred ..." + length);
    }

    public void completed() {

        // btn.setVisibility(View.VISIBLE);
        // Transfer completed

        Toast.makeText(getApplicationContext(), " completed ...",
                Toast.LENGTH_SHORT).show();
        // System.out.println(" completed ..." );
    }

    public void aborted() {

        // btn.setVisibility(View.VISIBLE);
        // Transfer aborted
        Toast.makeText(getApplicationContext(),
                " transfer aborted , please try again...",
                Toast.LENGTH_SHORT).show();
        // System.out.println(" aborted ..." );
    }

    public void failed() {

        // btn.setVisibility(View.VISIBLE);
        // Transfer failed
        System.out.println(" failed ...");
    }
    // Jibble.
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE_MULTIPLE
            && resultCode == Activity.RESULT_OK && null != data) {
        // uri=data.getData();
        // System.out.println("Current image Path is ----->" +
        // getRealPathFromURI(uri));
        imagesPathList = new ArrayList<String>();
         imagesPath = data.getStringExtra("data").split("\\|");
        try {
            lnrImages.removeAllViews();
        } catch (Throwable e) {
            e.printStackTrace();
        }

        for (int i = 0; i < imagesPath.length; i++) {
            Log.e("imagesPath can", "" + imagesPath);
            imagesPathList.add(imagesPath[i]);
            Log.w("imagesPathList are", "" + imagesPathList);
            yourbitmap = BitmapFactory.decodeFile(imagesPath[i]);
            Log.d("yourbitmap is", "" + yourbitmap);

            ImageView imageView = new ImageView(this);
            imageView.setImageBitmap(yourbitmap);
            imageView.setAdjustViewBounds(true);
            lnrImages.addView(imageView);

            String listString = "";

            for (String s : imagesPathList) {
                listString += s + "\t";
            }
            j = listString.toString();
            uri = Uri.parse(j);
            r = uri.toString();
            Log.d("mnmnmnmnmnmnmhjjuigyigsuiagducfuducgfasicfgds", "" + r);
            Log.d("anananananananananananananananananananananannananand",
                    "" + uri);