diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2020-04-22 13:40:23 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2020-04-22 13:40:23 +0200 |
commit | 754fd40e40b13f74235fef7ee811a0e26202f1fa (patch) | |
tree | 42960ee26a6c8fa6b258f73e6bee86076c5fabe7 /apps/files/js | |
parent | f0c1041d2ecb90ff28dcdbd72ca0425e1b9fde6b (diff) | |
download | nextcloud-server-754fd40e40b13f74235fef7ee811a0e26202f1fa.tar.gz nextcloud-server-754fd40e40b13f74235fef7ee811a0e26202f1fa.zip |
Fix IE11 upload fallback methods
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files/js')
-rw-r--r-- | apps/files/js/file-upload.js | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 5aed0f60149..1e54d32e55f 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -44,6 +44,28 @@ OC.FileUpload = function(uploader, data) { OC.FileUpload.CONFLICT_MODE_DETECT = 0; OC.FileUpload.CONFLICT_MODE_OVERWRITE = 1; OC.FileUpload.CONFLICT_MODE_AUTORENAME = 2; + +// IE11 polyfill +// TODO: nuke out of orbit as well as this legacy code +if (!FileReader.prototype.readAsBinaryString) { + FileReader.prototype.readAsBinaryString = function(fileData) { + var binary = '' + var pt = this + var reader = new FileReader() + reader.onload = function (e) { + var bytes = new Uint8Array(reader.result) + var length = bytes.byteLength + for (var i = 0; i < length; i++) { + binary += String.fromCharCode(bytes[i]) + } + // pt.result - readonly so assign binary + pt.content = binary + $(pt).trigger('onload') + } + reader.readAsArrayBuffer(fileData) + } +} + OC.FileUpload.prototype = { /** @@ -938,12 +960,13 @@ OC.Uploader.prototype = _.extend({ // in case folder drag and drop is not supported file will point to a directory // http://stackoverflow.com/a/20448357 - if ( ! file.type && file.size % 4096 === 0 && file.size <= 102400) { + if ( !file.type && file.size % 4096 === 0 && file.size <= 102400) { var dirUploadFailure = false; try { var reader = new FileReader(); reader.readAsBinaryString(file); - } catch (NS_ERROR_FILE_ACCESS_DENIED) { + } catch (error) { + console.log(reader, error) //file is a directory dirUploadFailure = true; } @@ -1059,6 +1082,7 @@ OC.Uploader.prototype = _.extend({ message = response.message; } } + console.error(e, data, response) OC.Notification.show(message || data.errorThrown, {type: 'error'}); } |