3 <title>Firmware Uploading Form</title>
6 <h3>Firmware Upload:</h3>
7 Select a file to upload: <br>
8 <!--<form action="file_upload" method="POST" enctype="multipart/form-data" onsubmit="myFunction()" onpagehide="foo()"> -->
9 <form action="/file_upload" method="POST" enctype="multipart/form-data" name="fooo">
10 <input type="file" name="file" id="file" style="width:500px"><br>
12 <input type="text" name="manufacturer"><br>
14 <input type="text" name="model"> <br>
15 New Firmware Version:<br>
16 <input type="text" name="version" id="version"><br>
18 <select name="priority">
19 <option value="1">Normal</option>
20 <option value="0">Urgent</option>
22 <input type="submit" onclick="return sendForm(this.form, 1);" name="upload" value="Full Upload">
23 <input type="submit" onclick="return sendForm(this.form, 2);" name="bsdiff" value="Build Diff"><br><br>
24 Old Firmware Version:<br>
25 <input type="text" name="old_version" id="old_version"><br>
26 <input type="submit" onclick="return sendForm(this.form, 3);" name="diff" value="Diff Upload">
28 <div> </div>RESULT<br>
29 <div id="message" style="background-color:#F5F5F5;width:600px;height:300px;OVERFLOW-Y:auto;word-wrap:break-word"></div>
31 function sendForm(form, formType) {
32 console.log("type:", formType);
33 var formData = new FormData(form);
34 var file_name = document.getElementById('file').value;
35 var version = document.getElementById('version').value;
36 console.log("file:", file_name);
39 formData.append('upload', 1); // Append extra data before send.
40 req_msg = "> Uploading "+ file_name + " started. Please, wait for several minutes." +'\r\n';
42 else if(formType == 2) {
43 formData.append('bsdiff', 1); // Append extra data before send.
44 req_msg = "> Building diff images based on version "+ version + " started. Please, wait for several minutes. It may takes long time depending on how large image is and how many previous versions are." +'\r\n';
46 else if(formType == 3) {
47 formData.append('diff', 1); // Append extra data before send.
48 req_msg = "> Uploading "+ file_name + " started. Please, wait a minutes." +'\r\n';
51 var xhr = new XMLHttpRequest();
52 xhr.open('POST', form.action, true);
54 xhr.onload = function(e) {
56 if (xhr.status == 200) {
57 console.log(this.responseText);
59 result = "> Uploading Complete!"+'\r\n' + this.responseText+'\r\n';
60 else if(formType == 2)
61 result = "> Building Diff Complete!"+'\r\n' + this.responseText+'\r\n';
62 else if(formType == 3)
63 result = "> Uploading Complete!"+'\r\n' + this.responseText+'\r\n';
66 result = "> Error " + xhr.status + " occurred when trying to upload full image." + '\r\n' + this.responseText+'\r\n';
67 else if(formType == 2)
68 result = "> Error " + xhr.status + " occurred when trying to build image diff." + '\r\n' + this.responseText+'\r\n';
69 else if(formType == 3)
70 result = "> Error " + xhr.status + " occurred when trying to upload diff image." + '\r\n' + this.responseText+'\r\n';
72 var div = document.getElementById('message');
73 div.innerText += result;
74 div.scrollTop = div.scrollHeight;
77 var div = document.getElementById('message');
78 div.innerText += req_msg;
79 div.scrollTop = div.scrollHeight;
82 return false; // Prevent page from submitting.
85 function sendDiff(form) {
86 var formData = new FormData(form);
87 var oOutput = document.querySelector("div");
88 formData.append('bsdiff', 1); // Append extra data before send.
90 var xhr = new XMLHttpRequest();
91 xhr.open('POST', form.action, true);
92 xhr.onload = function(e) {
93 if (xhr.status == 200) {
94 console.log(this.responseText);
95 oOutput.innerHTML = "Build Diff Complete<br\/>" + this.responseText;
97 oOutput.innerHTML = "Error " + xhr.status + " occurred when trying to build image diff.<br \/>" + this.responseText;
101 return false; // Prevent page from submitting.
106 <!--<div id="message" style="background-color:#F5F5F5;width:400px;height:200px;OVERFLOW-Y:auto;word-wrap:break-word"></div> -->