使用多部分/表单数据将文件上传到服务器

时间:2019-06-18 17:36:54

标签: java servlets

我有此代码:

Request restletRequest = getRequest();
HttpServletRequest servletRequest = ServletUtils.getRequest(restletRequest);
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator fileIterator = upload.getItemIterator(servletRequest);
LOG.info("File Item iterator - " + fileIterator.hasNext());
while (fileIterator.hasNext()) {
  // never reached
}

带日志:

[main] INFO com.xyzbackend.ServerResource - Media type - multipart/form-data; boundary=----WebKitFormBoundary5XV92DI2vfB2Z6NO
[main] INFO com.xyzbackend.ServerResource - Media size - 27671
[main] INFO com.xyzbackend.ServerResource - File Item iterator - false

这里的问题是,它可以在我的本地计算机上运行,​​这意味着“从未到达”部分实际上已到达并且代码可以正常执行。我的问题是,当它上传到云服务器(运行NGINX Unit服务器的Linode)时,它的行为开始有所不同。 fileIterator.hasNext()被评估为false。

根据经验,这种奇怪行为的可能原因是什么?

1 个答案:

答案 0 :(得分:1)

当前,NGINX Unit中的Java模块不支持multipart功能。我建议您在GitHub上创建问题,以讨论和实施此问题。