1

我的上传功能如下:

public void WebdavPutFile() {
    try {
        PutMethod Upload = new PutMethod("http://URL/FileName");
        File f = new File("Path");
        if(f.exists()) {
            RequestEntity requestEntity = new InputStreamRequestEntity(new FileInputStream(f));
            Upload.setRequestEntity(requestEntity);
            client.executeMethod(Upload);
        }
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}

它可以上传小文件成功。
但是如果文件大小超过 16mb,就会出现内存不足的问题。
如何上传大文件?

4

2 回答 2

2

我从这里找到了答案。

使用FileRequestEntity而不是InputStreamRequestEntity.
它适用于大文件上传。

于 2013-08-08T10:08:08.653 回答
0

加载大文件时堆正在爆炸。:)

根据我在这里阅读的内容,可以创建可恢复的上传到 WebDav 服务器。您所要做的就是读取您的大文件并创建一些缓冲区,比如说 1MB,然后使用提供的链接中指定的标头RandomAccessFile进行多次上传。如果您需要代码将文件拆分成块,请告诉我。

于 2013-08-08T01:03:23.090 回答