Skip to content

Commit 4602116

Browse files
committed
multiple file input fields in one form
1 parent 832003c commit 4602116

File tree

2 files changed

+46
-35
lines changed

2 files changed

+46
-35
lines changed

WebContent/fileupload/jquery.fileupload-ui.css

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.file_upload {
1+
div.file_upload {
22
position: relative;
33
overflow: hidden;
44
direction: ltr;
@@ -16,7 +16,7 @@
1616
border: 1px solid limegreen;
1717
}
1818

19-
.file_upload_small {
19+
div.file_upload_small {
2020
width: 200px;
2121
height: 30px;
2222
line-height: 30px;
@@ -25,7 +25,7 @@
2525
border: 1px solid limegreen;
2626
}
2727

28-
.file_upload_large {
28+
div.file_upload_large {
2929
width: 100%;
3030
height: 150px;
3131
line-height: 150px;
@@ -34,11 +34,11 @@
3434
border: 1px solid limegreen;
3535
}
3636

37-
.file_upload_highlight {
37+
div.file_upload_highlight {
3838
background: lawngreen;
3939
}
4040

41-
.file_upload input {
41+
div.file_upload input {
4242
position: absolute;
4343
top: 0;
4444
right: 0;

WebContent/index.html

+41-30
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,58 @@
88
</head>
99
<body>
1010
<form id="file_upload" action="upload" method="POST" enctype="multipart/form-data">
11-
<input type="file" name="file1" id="file1" multiple>
11+
<div id="drop_zone_1">
12+
<input id="file_1" type="file" name="file_1" multiple>
13+
<div>Upload files</div>
14+
</div>
15+
<div id="drop_zone_2">
16+
<input id="file_2" type="file" name="file_2" multiple>
17+
<div>Upload files</div>
18+
</div>
19+
<div id="drop_zone_3">
20+
<input id="file_3" type="file" name="file_3" multiple>
21+
<div>Upload files</div>
22+
</div>
1223
<button>Upload</button>
13-
<div>Upload files</div>
1424

15-
<!-- This breaks the upload -->
16-
<input type="file" name="file2" id="file2" multiple>
17-
<button>Upload</button>
18-
<div>Upload files</div>
19-
<!-- -->
25+
<table id="files_1" style="background:yellow;"></table>
26+
<table id="files_2" style="background:gold;"></table>
27+
<table id="files_3" style="background:orange;"></table>
2028
</form>
21-
<table id="file1_files"></table>
29+
2230

2331
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
2432
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>
2533
<script src="fileupload/jquery.fileupload.js"></script>
2634
<script src="fileupload/jquery.fileupload-ui.js"></script>
2735
<script>
2836

29-
$(document).ready(function() {
30-
initUpload('file1');
37+
/*global $ */
38+
$(function () {
39+
var initFileUpload = function (suffix) {
40+
$('#file_upload').fileUploadUI({
41+
namespace: 'file_upload_' + suffix,
42+
fileInputFilter: '#file_' + suffix,
43+
dropZone: $('#drop_zone_' + suffix),
44+
uploadTable: $('#files_' + suffix),
45+
downloadTable: $('#files_' + suffix),
46+
buildUploadRow: function (files, index) {
47+
return $('<tr><td>' + files[index].name + '<\/td>' +
48+
'<td class="file_upload_progress"><div><\/div><\/td>' +
49+
'<td class="file_upload_cancel">' +
50+
'<button class="ui-state-default ui-corner-all" title="Cancel">' +
51+
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
52+
'<\/button><\/td><\/tr>');
53+
},
54+
buildDownloadRow: function (file) {
55+
return $('<tr><td>' + file.name + '<\/td><\/tr>');
56+
}
57+
});
58+
};
59+
initFileUpload(1);
60+
initFileUpload(2);
61+
initFileUpload(3);
3162
});
32-
33-
function initUpload(uniqueId) {
34-
$('#file_upload').fileUploadUI({
35-
namespace: uniqueId,
36-
fileInputFilter: '#' + uniqueId,
37-
uploadTable: $('#'+ uniqueId + '_files'),
38-
downloadTable: $('#'+ uniqueId + '_files'),
39-
buildUploadRow: function (files, index) {
40-
return $('<tr><td>' + files[index].name + '<\/td>' +
41-
'<td class="file_upload_progress"><div><\/div><\/td>' +
42-
'<td class="file_upload_cancel">' +
43-
'<button class="ui-state-default ui-corner-all" title="Cancel">' +
44-
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
45-
'<\/button><\/td><\/tr>');
46-
},
47-
buildDownloadRow: function (file) {
48-
return $('<tr><td>' + file.name + '<\/td><\/tr>');
49-
}
50-
});
51-
}
5263
</script>
5364

5465
</body>

0 commit comments

Comments
 (0)