【问题标题】:REST Server for uploading and downloading documents用于上传和下载文档的 REST 服务器
【发布时间】:2016-02-11 00:16:57
【问题描述】:

我写了一个安卓应用程序,其中一部分是处理上传和下载文件。目前我正在使用 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(可能是一个 RESET ),如果有更好的方法来保存各种文件(pdf、word...)。

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

有人对如何做有任何建议吗?

提前致谢!

【问题讨论】:

    标签: android file rest azure server


    【解决方案1】:

    首先,您不必将文件转换为字符串,只需将其保存为文件即可。如果继续这样做,您可能会丢失数据。见: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/

    【讨论】:

    • 我不知道他们有 blob 存储。我认为这可能非常有用。谢谢!!
    猜你喜欢
    • 2013-06-17
    • 2013-08-03
    • 2015-08-18
    • 2016-03-16
    • 1970-01-01
    • 2020-05-14
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多