sabauma
sabauma

Reputation: 4253

JSP/Servlet: Create a form for uploading an unknown number of files

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

Answers (2)

kgiannakakis
kgiannakakis

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

user159088
user159088

Reputation:

You could go with something like the Commons FileUpload Project

Upvotes: 1

Related Questions