Skip to content

Commit 36c23d6

Browse files
committed
Upload file independently from rest of the form
1 parent a8f58a5 commit 36c23d6

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

example_html5_upload.rb

+11-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
HTML_CODE
66
end
77

8-
post '/' do
8+
post '/upload' do
99
file = params['our-file']
1010
details = {
1111
:filename => file[:filename],
@@ -24,10 +24,13 @@
2424
#
2525

2626
JS_CODE =<<-JS
27-
document.getElementById('form-id').onsubmit = function (evt) {
28-
var form = document.getElementById('form-id');
29-
var formData = new FormData(form);
30-
var action = form.getAttribute('action');
27+
var uploadBtn = document.getElementById('upload-button-id');
28+
uploadBtn.onclick = function (evt) {
29+
var fileInput = document.getElementById('file-id');
30+
var file = fileInput.files[0];
31+
var formData = new FormData();
32+
var action = '/upload';
33+
formData.append('our-file', file);
3134
3235
var xhr = new XMLHttpRequest();
3336
xhr.upload.addEventListener('loadstart', onloadstartHandler, false);
@@ -87,8 +90,9 @@
8790
</head>
8891
<body>
8992
<form action="/" method="post" enctype="multipart/form-data" id="form-id">
90-
<input id="file-id" type="file" name="our-file" />
91-
<input type="submit" value="Upload!" />
93+
<p><input id="file-id" type="file" name="our-file" /> <input type="button" value="Upload" id="upload-button-id" /></p>
94+
<p><label>Some other field: <input name="other-field" type="text" id="other-field-id" /></label></p>
95+
<p><input type="submit" value="Save" /></p>
9296
<script>
9397
#{JS_CODE}
9498
</script>

0 commit comments

Comments
 (0)