Reputation: 4253
I need to create a form that will allow, among other things, a user to upload an unknown number of files to the server running Tomcat. It would be nice if the form could add upload slots to the form as needed. I haven't found much useful on the subject, so I thought I would poll the community.
Upvotes: 0
Views: 429
Reputation: 104178
You need an ajax enabled form that can add/remove input file elements:
<table border="1px">
<tbody class="files">
<tr><td><a class="delete" href="#">Delete</a></td><td><input class="fileSelect" type="file" name="file" /></td></tr>
<tr><td><a class="delete" href="#">Delete</a></td><td><input class="fileSelect" type="file" name="file" /></td></tr>
<tr><td><a class="delete" href="#">Delete</a></td><td><input class="fileSelect" type="file" name="file" /></td></tr>
<tr><td><a class="delete" href="#">Delete</a></td><td><input class="fileSelect" type="file" name="file" /></td></tr>
</tbody>
<tbody>
<tr><td><a class="add" href="#">Add</a></td><td><input id="submitButton" type="submit" value="Upload"/></td></tr>
</tbody>
</table>
Using jQuery:
$(function() {
$(".delete").live("click", function() {
$(this).parent().parent().remove();
});
$(".add").click(function() {
$("tbody.files").append("<tr><td><a class='delete' href='#'>Delete</a></td><td><input class='fileSelect' type='file' name='file' /></td></tr>");
});
});
If you use Apache Commons FileUpload, then the server code is the same, no matter how many files are sent. FileUpload allows you to iterate over all uploaded files.
Upvotes: 3