Android:SimpleFTP - 空文件

时间:2014-01-27 15:59:18

标签: java android inputstream

我正在编写一个应用程序,并希望以编程方式将html文件上传到我的ftp服务器。问题是我正在向服务器发送一个空文件。为什么?我不知道,这就是我要问的原因。

App类是一个我正在使用INTENT存储无法传递的对象的类。

错误在哪里,我是否错误地创建了InputStream?它是不正确的字符集吗?

我希望我没有错过任何代码,如果有,请告诉我!

代码:

SimpleFTP: http://www.jibble.org/simpleftp/

InputStream创建者:

public void packHTML(List<Question> questions){
    try {
        String fileName = name + new Random().nextInt() + ".html";

        File sdCard = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        File dir = new File(sdCard.getAbsolutePath() + "/london_HTML");
        dir.mkdirs();
        File file = new File(dir, fileName);

        FileOutputStream fw = new FileOutputStream(file);

        fw.write("<html>\n".getBytes());
        fw.write(("<head><title>" +name +"'s antwoorden</title></head>\n").getBytes());
        fw.write("<body>\n".getBytes());
        fw.write(("<h1>" +name +"'s antwoorden</h1><br>\n").getBytes());
        for(int i = 0; i < questions.size(); i++){
            fw.write(questions.get(i).getAsHtml().getBytes());
        }
        fw.write("</body>\n".getBytes());
        fw.write("</html>".getBytes());
        fw.flush();
        fw.close();

        StringBuilder b = new StringBuilder();
        b.append("<html>\n");
        b.append("<head><title>" +name +"'s antwoorden</title></head>\n");
        b.append("<body>\n");
        b.append("<h1>" +name +"'s antwoorden</h1><br>\n");
        for(int i = 0; i < questions.size(); i++){
            b.append(questions.get(i).getAsHtml());
        }
        b.append("</body>\n");
        b.append("</html>\n");

        //StringReader r = new StringReader(b.toString());

        App.in = new ByteArrayInputStream(b.toString().getBytes("UTF-8"));

        file.setReadable(true, false);
        App.file = file;
        System.out.println(file.getAbsoluteFile());
        Intent intent = new Intent(this, ConfirmActivity.class);
        intent.putExtra("localAddress", this.getFilesDir().getPath() +"/" +fileName);
        intent.putExtra("webAddress", "http://yteditors.tk/luploads/" +fileName);
        intent.putExtra("fileName", fileName);
        intent.putExtra("name", name);
        startActivity(intent);
    } catch (IOException e) {
        Toast t = Toast.makeText(this, "Error with file", Toast.LENGTH_SHORT);
        t.show();
        e.printStackTrace();
    }
}

发射器:

public void sendFtp() throws Exception{
    SimpleFTP ftp = new SimpleFTP();
    ftp.connect("IP", PORT, "UN", "PASS");
    ftp.bin();
    ftp.stor(App.in, getIntent().getExtras().getString("fileName"));
    ftp.disconnect();
}

编辑:

我可能发现了问题:命令“STOR”服务器回复“331”,这意味着它仍然需要密码验证。无论如何,谢谢你的帮助!

编辑:

不是问题,仍然是空文件.. :(

0 个答案:

没有答案