我试图通过servlets(服务器代码)在android中通过多部分上传文件。所以我可以这样迭代循环。
for (Part part : request.getParts()) {
//uploading current part.. working..
}
但我想像下面那样进行迭代,
for (int i = 0; i < request.getParts().size(); i++) {
//request.getPart(i); not working..
//request.getPart(i+1); not working..
}
原因是每次迭代都需要当前部分和下一部分。是否可以像上面那样或任何其他方式来做。我怎样才能做到这一点?
答案 0 :(得分:0)
HttpServletRequest.getParts()
返回Collection
,Lists
不允许基于索引的访问。
您可以先将所有部分复制到ArrayList
,然后循环显示该列表:
ArrayList<Parts> parts = new ArrayList<>(request.getParts());
for (int i=0; i<parts.size()-1; i+=2) {
// parts.get(i);
// parts.get(i+1);
}
答案 1 :(得分:0)
也许这对您有所帮助... 我为每个循环都做了一个。 应用示例:
for (Part part : request.getParts()) {
// Your code. For example:
fileName = getFileName(part);
part.write(fileName);
}
private String getFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] tokens = contentDisp.split(";");
for (String token : tokens) {
if (token.trim().startsWith("filename")) {
return token.substring(token.indexOf("=") + 2, token.length() - 1);
}
}
return "";
}
希望对您有帮助!