1

我需要上传一个 10-100mb 的文件。当我尝试上传文件时,它给了我内存不足的错误

sb.append(Base64.encode(data));

我该如何解决这个问题?我的网络服务是 SOAP 网络服务。这是该方法的完整代码。

 public static String fileToBase64(String path) throws IOException {
            File imagefile = new File(path);
            byte[] data = new byte[3000];
            FileInputStream fin = null;
            StringBuffer sb = new StringBuffer();
            try {
                fin = new FileInputStream(imagefile);
                while(fin.read(data) >= 0) {
                   sb.append(Base64.encode(data));
               }
                return sb.toString();
            } catch (Exception e) {
                // TODO: handle exception
            } finally{
                fin.close();
            }
            return null;
        }
4

1 回答 1

0

我看到两种方法:

  1. 使用流式 XML 编写器和分块内容来避免过多的内存消耗。不确定它是否适用于这里。

  2. 使用MTOM发送带有附件的 SOAP 消息。

这种方法更可取,但您必须向您的 Web 服务添加所需的功能。

于 2013-06-16T20:24:08.473 回答