Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从android手机上传文件到FTP服务器?_Java_Android_Ftp_Apache Commons_Apache Commons Net - Fatal编程技术网

Java 从android手机上传文件到FTP服务器?

Java 从android手机上传文件到FTP服务器?,java,android,ftp,apache-commons,apache-commons-net,Java,Android,Ftp,Apache Commons,Apache Commons Net,下面是创建文本文档并将其上载到FTP服务器的代码。由于某种原因,它似乎不起作用。我过去常去图书馆 用于与FTP服务器通信 try { final String testString = new String("Hello"); FileOutputStream fOut = openFileOutput("samplefile.txt", MODE_WORLD_READABLE); OutputStream

下面是创建文本文档并将其上载到FTP服务器的代码。由于某种原因,它似乎不起作用。我过去常去图书馆

用于与FTP服务器通信

try
    {
        final String testString = new String("Hello");
        FileOutputStream fOut = openFileOutput("samplefile.txt",
                MODE_WORLD_READABLE);
        OutputStreamWriter osw = new OutputStreamWriter(fOut); 

        osw.write(testString);
        osw.flush();
        osw.close();
    }


    catch(IOException ex)
    {

    }


    FTPClient mFTP = new FTPClient();
    try {
        // Connect to FTP Server
        mFTP.connect("192.168.10.101");
        //mFTP.login("user", "password");
        mFTP.setFileType(FTP.BINARY_FILE_TYPE);
        mFTP.enterLocalPassiveMode();

        // Prepare file to be uploaded to FTP Server
        File file = new File(getFileStreamPath("samplefile.txt")+ "");
        FileInputStream ifile = new FileInputStream(file);

        // Upload file to FTP Server
        mFTP.storeFile("filetotranfer",ifile);
        mFTP.disconnect();          
    } catch (SocketException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

任何帮助都将不胜感激。

请看。。。。。。这将帮助您纠正代码中的问题

我使用了apache的commons库在服务器上上传和下载音频文件。。。看这个

上传:

public void goforIt(){


        FTPClient con = null;

        try
        {
            con = new FTPClient();
            con.connect("192.168.2.57");

            if (con.login("Administrator", "KUjWbk"))
            {
                con.enterLocalPassiveMode(); // important!
                con.setFileType(FTP.BINARY_FILE_TYPE);
                String data = "/sdcard/vivekm4a.m4a";

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






    }
public void goforIt(){
    FTPClient con = null;

    try
    {
        con = new FTPClient();
        con.connect("192.168.2.57");

        if (con.login("Administrator", "KUjWbk"))
        {
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String data = "/sdcard/vivekm4a.m4a";

            OutputStream out = new FileOutputStream(new File(data));
            boolean result = con.retrieveFile("vivekm4a.m4a", out);
            out.close();
            if (result) Log.v("download result", "succeeded");
            con.logout();
            con.disconnect();
        }
    }
    catch (Exception e)
    {
        Log.v("download result","failed");
        e.printStackTrace();
    }



}
下载:

public void goforIt(){


        FTPClient con = null;

        try
        {
            con = new FTPClient();
            con.connect("192.168.2.57");

            if (con.login("Administrator", "KUjWbk"))
            {
                con.enterLocalPassiveMode(); // important!
                con.setFileType(FTP.BINARY_FILE_TYPE);
                String data = "/sdcard/vivekm4a.m4a";

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






    }
public void goforIt(){
    FTPClient con = null;

    try
    {
        con = new FTPClient();
        con.connect("192.168.2.57");

        if (con.login("Administrator", "KUjWbk"))
        {
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String data = "/sdcard/vivekm4a.m4a";

            OutputStream out = new FileOutputStream(new File(data));
            boolean result = con.retrieveFile("vivekm4a.m4a", out);
            out.close();
            if (result) Log.v("download result", "succeeded");
            con.logout();
            con.disconnect();
        }
    }
    catch (Exception e)
    {
        Log.v("download result","failed");
        e.printStackTrace();
    }



}
您可以使用它并将其添加为项目的外部jar,您也可以参考以下内容

您也可以使用该库,有关更多详细信息,请关注该库


以下是代码块:

private class UploadFile extends AsyncTask<String, Integer, Boolean> {

    @Override
    protected Boolean doInBackground(String... params) {
        FTPClient client = new FTPClient();
        try {
            client.connect(params[1], PORT);
            client.login(params[2], params[3]);
            client.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
            return client.storeFile(filename, new FileInputStream(new File(
                    params[0])));

        } catch (Exception e) {
            Log.d("FTP", e.toString());
            return false;
        }
    }

    @Override
    protected void onPostExecute(Boolean sucess) {
        if (sucess)
            Toast.makeText(activity, "File Sent", Toast.LENGTH_LONG).show();
        else
            Toast.makeText(activity, "Error", Toast.LENGTH_LONG).show();
    }

}
私有类上载文件扩展了异步任务{
@凌驾
受保护的布尔doInBackground(字符串…参数){
FTPClient client=新的FTPClient();
试一试{
client.connect(参数[1],端口);
client.login(参数[2],参数[3]);
client.setFileType(FTP.BINARY\u文件类型,FTP.BINARY\u文件类型);
返回client.storeFile(文件名,新文件输入流(新文件(
参数[0]);
}捕获(例外e){
Log.d(“FTP”,例如toString());
返回false;
}
}
@凌驾
受保护的void onPostExecute(布尔成功){
如果(成功)
Toast.makeText(活动,“已发送文件”,Toast.LENGTH_LONG.show();
其他的
Toast.makeText(活动,“错误”,Toast.LENGTH_LONG).show();
}
}
请获得完整的工作项目上传文件到FTP服务器从下面的驱动器

文件上载到FTP使用端口21, 在FTP上上载文件所需的参数

主机名 用户名 密码


在使用Apache Commons FTP客户端时,检查logcat的输出通常非常有用。请明确说明哪些不起作用。并发布你的日志。谢谢@FelixSFD,我已经编辑了我的答案,请查看。现在可以了吗?我们应该在清单上设置一些东西来获得internet连接权限吗?发生了一些套接字问题,这意味着什么?