通过cmis将文件下载为.zip

时间:2015-06-17 13:41:32

标签: zip cmis opencmis smd

我目前正在开发一个原生的Android应用程序,并尝试访问文档服务器上的一些图片。对于通信,我正在使用OpenCMIS库。

我的目标是下载图片并将其保存到设备的内部存储空间或SD卡中。我的问题是,是否有可能将文件下载为压缩存档,例如.zip,并在设备上提取此文件?因此,我不想单独下载大量文件,而是要下载一个大文件。

这是OpenCMIS能够做到的吗?或者这取决于文件服务器?我正在使用SAP Mobile Documents并知道我可以通过浏览器从Web界面下载整个文件夹作为.zip,但我还没有在自定义Android客户端中找到可能的内容。

任何提示或解释都表示赞赏,提前谢谢!

1 个答案:

答案 0 :(得分:1)

所以我使用了help from Florian Müller

对于任何有兴趣的人,在本机Android应用程序中从SAP Mobile Document Server下载文件夹作为.zip存档的最终代码如下所示:

public void downloadAsZip(Session session, Folder folder, File destination){
    ContentStream zipStream = session.getContentStream(folder, "sap:zipRendition", null, null);
    InputStream inputStream = zipStream.getStream();

    try {
        File file = new File(destination, folder.getName()+".zip");
        FileOutputStream fileOutputStream = new FileOutputStream(file);

        byte[] buffer = new byte[1024];
        int bufferLength = 0;

        while ((bufferLength = inputStream.read(buffer)) > 0) {
            fileOutputStream.write(buffer, 0, bufferLength);
        }

        fileOutputStream.close();
        inputStream.close();
    }
    catch(IOException e){
        Log.e(TAG, "An error occurred: "+e.getMessage());
    }
}