ftpUpload错误:java.lang.IllegalArgumentException:

时间:2014-10-14 06:12:43

标签: android image-uploading

我想将图片上传到服务器。这是我的代码:

MainAcitvity.java:

String filePath = Environment.getExternalStorageDirectory()+
                                  "/cloze_screenshots/20141014_055246.jpg";     
boolean ftpclient.ftpUpload(filePath,"20141014_055246.jpg","./bigmimi/public_html/testing/"+"947917688555565/",cntx);

ftpclient.java:

public boolean ftpUpload(String srcFilePath, String desFileName,
                         String desDirectory, Context context)
{
    boolean status = false;
    try {
       // FileInputStream srcFileStream = new FileInputStream(srcFilePath);

        FileInputStream srcFileStream = context.openFileInput(srcFilePath);

        // change working directory to the destination directory
        //if (ftpChangeDirectory(desDirectory)) {
            status = mFTPClient.storeFile(desFileName, srcFileStream);
        //}

        srcFileStream.close();
        return status;
    } 
    catch (Exception e) {
        //Log.d(TAG, "upload failed: " + e);
        Log.e("go","error: "+ e);
    }

    return status;
}               

我收到错误:

 error: java.lang.IllegalArgumentException: File /storage/emulated/0/cloze_screenshots/20141014_055246.jpg contains a path separator

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

作为文档openFileInput()

中的统计信息
  

打开与此Context的应用程序包关联的私有文件   阅读。

     

参数

     

名称要打开的文件的名称;不能包含路径   分隔符。

即。 openFileInput()不接受路径,只有文件名才能访问路径,使用新文件(路径)从路径获取文件名,然后将其传递给{ {1}}。

代码更改

openFileInput()

 FileInputStream srcFileStream = context.openFileInput(srcFilePath);

修改

您在SD卡中的文件,并且您正在使用打开内部文件的 FileInputStream srcFileStream = context.openFileInput("20141014_055246.jpg"); 。所以要从SD卡获取文件,请使用

openFileInput()

并使用File mFile = new File(srcFilePath); 作为

srcFileStream

而不是

    FileInputStream srcFileStream = new FileInputStream(mFile);