aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authorLukeOwncloud <owncloud@ohrt.org>2014-10-31 22:40:42 +0100
committerLukeOwncloud <owncloud@ohrt.org>2014-10-31 22:40:42 +0100
commit1cbb99f26e8d109c6b0df6b5c5b79c991623b9ed (patch)
treeac796342a5c06c56c0c541ca583dfd20e6efc67f /core/src/main/java
parentab6feae737b3038532d057e87fd83c58bad3b3cc (diff)
downloadnanohttpd-1cbb99f26e8d109c6b0df6b5c5b79c991623b9ed.tar.gz
Support <input type="file" multiple>
If several files are uploaded using a single input field (multiple), enumerate files and make them all available. If 3 files are uploaded using: <input name="upload" type="file" multiple> They are named by ```session.parseBody(files);```: upload upload2 upload3 This way backward compatibilty is preserved.
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/fi/iki/elonen/NanoHTTPD.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
index ce292a4..1b6b811 100644
--- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
+++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
@@ -1147,7 +1147,15 @@ public abstract class NanoHTTPD {
}
int offset = stripMultipartHeaders(fbuf, bpositions[boundarycount - 2]);
String path = saveTmpFile(fbuf, offset, bpositions[boundarycount - 1] - offset - 4);
- files.put(pname, path);
+ if(!files.containsKey(pname)) {
+ files.put(pname, path);
+ } else {
+ int count = 2;
+ while(files.containsKey(pname+count)) {
+ count++;
+ };
+ files.put(pname+count, path);
+ }
value = disposition.get("filename");
value = value.substring(1, value.length() - 1);
do {