我一直在写一个小应用程序,将让人们上传&下载文件给我。我已经添加了一个Web服务到这个应用程序提供上传/下载功能,但我不太确定我的实现将如何处理大文件。
此时,上传&下载方法看起来像这样(使用Apache CXF编写):
boolean uploadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename,
@WebParam(name = "fileContents") byte[] fileContents)
throws UploadException, LoginException;
byte[] downloadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename) throws DownloadException,
LoginException;
所以文件被上传和下载为一个字节数组。但如果我有一个愚蠢的大小(例如1GB)的文件肯定这将尝试,把所有的信息,内存和崩溃我的服务。
所以我的问题是 – 是否可能返回某种类型的流?我想象这不会是可怕的独立于操作系统。虽然我知道web服务的背后的理论,实际方面是我仍然需要拿起一些信息。
干杯任何输入,
李