如何将文件插入ftp服务器中的数据库

时间:2017-03-24 13:40:45

标签: java mysql ftp

我编程好了。从ftp服务器上传到mysql的所有文件。但我从mysql服务器下载文件并尝试打开它,文件损坏的异常发生。 我从ftp服务器读取文件并保存为byte []数组。并保存。一切正常。但是从mysql服务器下载后没有打开。我再次编程了一个这样的例子。它保存到本地驱动器。再次发生同样的错误。 请求,是否有任何例子"从ftp读取文件并保存为字节数组然后将字节数组保存为文件(存在)。"

1 个答案:

答案 0 :(得分:0)

这是我的java代码

 public boolean exec_blob(String sqlcmd,List<ArrayList> lst) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(set.getSqlConnStr(),set.getDbUser(),set.getDbPassword());
        PreparedStatement statement = conn.prepareStatement(sqlcmd);
        for(int i=0;i<lst.size();i++){
            if(lst.get(i).get(0).toString().equals("String")){
                statement.setString(i+1, lst.get(i).get(1).toString());
            }
            else if(lst.get(i).get(0).toString().equals("Integer")){
                statement.setInt(i+1, Integer.parseInt(lst.get(i).get(1).toString()));
            }
            else if(lst.get(i).get(0).toString().equals("FileInputStream")){
                byte[] data=(byte[])lst.get(i).get(1);
                ByteArrayInputStream bais = new ByteArrayInputStream(data);
                File fl=new File("c:\\0\\1.pdf");
                FileOutputStream fos=new FileOutputStream(fl);
                fos.write(data);
                fos.close();
                statement.setBinaryStream(i+1,bais,8*data.length);
            }
        }
        int row = statement.executeUpdate();
        if (row > 0) {
            System.out.println("####\tfile uploaded to DB.................");
        }
        statement.close();
        conn.close();
    } catch (SQLException ex) {
        ex.printStackTrace();
        System.out.println("SQL ERROR:"+ex.toString());
        return false;
    } catch (Exception ex) {
        ex.printStackTrace();
        System.out.println("SQL ERROR:"+ex.toString());
        return false;
    }
    return true;
}

1.pdf未开启