Add support for multiple file uploads from a single input element #286
+283
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prologue was only capturing the last file when multiple files were uploaded using
<input type="file" name="files" multiple />. The FormPart data structure overwrote entries with duplicate names.Changes
Core data structure (
types.nim)FormPart.datafromOrderedTableRef[string, tuple[...]]toOrderedTableRef[string, seq[tuple[...]]][]operator to return first item for backward compatibility[]=operator to append instead of replaceForm parser (
form.nim)parseFormPartto accumulate files with same name into sequences[^1]API (
context.nim)getUploadFiles(name: string): seq[UploadFile]for retrieving all filesgetUploadFile(name: string)returns first file, unchanged behaviorUsage
Example in
examples/multifile_upload/demonstrates complete implementation.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
esm.ubuntu.com/usr/lib/apt/methods/https /usr/lib/apt/methods/https(dns block)nim-lang.org/usr/bin/curl curl REDACTED -sSf(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.