android - 用于上传和下载文档的 REST 服务器

标签 android file rest azure server

我写了一个android应用程序,其中一部分是处理上传和下载文档。目前我正在使用 Microsoft Azure 服务器来保存文件。

我目前的做法是将文件转换为字符串并将其保存在 Azure 服务器上:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
FileInputStream fis;
try {
      fis = new FileInputStream(new File(Uridata.getPath()));
      byte[] buf = new byte[1024];
      int n;
      while (-1 != (n = fis.read(buf)))
             baos.write(buf, 0, n);
} catch (Exception e) {
       e.printStackTrace();
}
byte[] bbytes = baos.toByteArray();
item.setStringFile(Base64.encodeToString(bbytes, Base64.URL_SAFE));
item.setName(Uridata.getLastPathSegment());

其中 item 是我的类,用于保存字符串表示形式和文件名并正在加载到 Azure,Uridata 是所选文件的 Uri 实例.

此解决方案有一个主要问题,那就是文件大小的限制。 我正在寻找一台好的服务器来代替 Azure(也许是重置服务器),以及是否有更好的方法来保存各种文件(pdf、word...)。

我将来还希望在网络界面中使用相同的数据

有人对如何做到这一点有任何建议吗?

提前致谢!

最佳答案

首先,您不必将文件转换为字符串,只需将其另存为文件即可。继续这样做可能会丢失数据。请参阅:How do I save a stream to a file in C#?

如果您正在寻找其他服务来保存文件,那么您应该考虑 Azure Blob 存储。它将允许您将任意数量的数据上传到任意文件的存储服务。参见示例: https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/

关于android - 用于上传和下载文档的 REST 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624590/

相关文章:

php - 我可以在 Guzzle 的路由文件中指定 Accept 和 Content-Type header 吗?

web-services - REST Web 服务的 'WSDL' 的首选方法是什么?

jQuery XML REST 访问控制允许来源

android - 待命类 Activity

java - 如何验证来自不同应用程序的广播接收器的 onReceive 方法是否确实被调用?

c++ - 从低到高组织整数并在 C++ 中使用结构

python从一个已经打开的文件中获取数据

android - 如何从 cordova 中的 plugin.xml 向 android Activity 添加属性?

java - IabHelper.startSetup() 导致 NullPointerException

java - 解析Java中文本文件中由空格分隔的小数