summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2020-04-22 22:06:56 +0200
committerGitHub <noreply@github.com>2020-04-22 22:06:56 +0200
commitd0a57a33a9900e26a0f400a17503d388e49cf932 (patch)
treed8b9582280097d0d28fc0bb50d9a56ffdb9bc81a /apps
parent049e9ed9e9140b52ba66bfd47060263e61a1a7ab (diff)
parent754fd40e40b13f74235fef7ee811a0e26202f1fa (diff)
downloadnextcloud-server-d0a57a33a9900e26a0f400a17503d388e49cf932.tar.gz
nextcloud-server-d0a57a33a9900e26a0f400a17503d388e49cf932.zip
Merge pull request #20595 from nextcloud/fix/ie11-fallback-upload
Fix IE11 upload fallback methods
Diffstat (limited to 'apps')
-rw-r--r--apps/files/js/file-upload.js28
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'});
}