From 008c51f352ab70195d30d3f9ce9e2a59482f73d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20M=C3=BChlstrasser?= Date: Tue, 4 Nov 2014 22:18:15 +0100 Subject: [PATCH] Disable local file upload if FileReader support is not available. --- my_modules/c1pjs-client/lib/serial.js | 33 ++++++++++++++++----------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/my_modules/c1pjs-client/lib/serial.js b/my_modules/c1pjs-client/lib/serial.js index bf51851b5..236d4929a 100644 --- a/my_modules/c1pjs-client/lib/serial.js +++ b/my_modules/c1pjs-client/lib/serial.js @@ -125,21 +125,28 @@ C1PSerialPort.prototype.setBinding = function(c, t, s, e) }(this); return true; case "uploadSerial": - this.bindings[s] = e; - var serial = this; - e.onsubmit = function (event) { - var file = event.currentTarget[1].files[0]; + // Check for availability of FileReader + if (window.FileReader && window.File && window.FileList && window.Blob ) { + var serial = this; + this.bindings[s] = e; + e.onsubmit = function (event) { + var file = event.currentTarget[1].files[0]; - var reader = new FileReader(); - reader.onload = function () { - // serial.println("uploading " + file.name + "..."); - serial.loadFile(file.name, reader.result, 0); + var reader = new FileReader(); + reader.onload = function () { + // serial.println("uploading " + file.name + "..."); + serial.loadFile(file.name, reader.result, 0); + }; + reader.readAsText(file); + + // Prevent reloading of web page after form submission + return false; }; - reader.readAsText(file); - - // Prevent reloading of web page after form submission - return false; - }; + } + else { + this.println("FileReader support not available, disabling local file upload"); + e.parentNode.removeChild(e); + } return true; default: break;