我写了一个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/