diff options
author | LukeOwncloud <owncloud@ohrt.org> | 2014-10-31 22:40:42 +0100 |
---|---|---|
committer | LukeOwncloud <owncloud@ohrt.org> | 2014-10-31 22:40:42 +0100 |
commit | 1cbb99f26e8d109c6b0df6b5c5b79c991623b9ed (patch) | |
tree | ac796342a5c06c56c0c541ca583dfd20e6efc67f /core/src/main/java | |
parent | ab6feae737b3038532d057e87fd83c58bad3b3cc (diff) | |
download | nanohttpd-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.java | 10 |
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 { |