【发布时间】:2011-08-26 09:12:40
【问题描述】:
我正在使用O'Reilly's multipart form library for Servlets 来处理文件上传。我发现它有用且可行,但我面临一个我无法解决的问题。这是关于多值参数(例如多选)。 我正在解析如下参数:
List<Units> unitsParams = new ArrayList<Units>();
while (mp != null && (part = mp.readNextPart()) != null) {
if (part.isFile()) {//Es un fichero.
FilePart filePart = (FilePart) part;
if (filePart.getContentType().equals("image/jpeg")) {
InputStream pis = filePart.getInputStream();
// It's a file, handle it
}
} else if (part.isParam()) { // Es un parametro
// Handle the actual params
String namePar = part.getName();
ParamPart paramPart = (ParamPart) part;
String valorPar = paramPart.getStringValue();
boolean fin = null == valorPar;
if (!fin) {
if (namePar.equals("id")) {
id = valorPar;
} else if (namePar.equals("name")) {
orgName = valorPar;
} else if (namePar.equals("unitSelect")) {
unitsParams.add(valorPar);
}
}
}
对于多值参数,我认为它会迭代(发送不同部分)的次数与我发送的参数 unitSelect 的值的数量一样多,但我只能得到一个值。
有人使用过这个库并遇到过这个问题吗?我试图避免更改库,因为文件上传工作正常,并且为少数 servlet 更改代码的重要部分很痛苦。
欢迎提出任何建议。
谢谢。
【问题讨论】:
标签: html servlets parameters multipartform-data