Merge pull request #20595 from nextcloud/fix/ie11-fallback-upload
Fix IE11 upload fallback methods
This commit is contained in:
commit
d0a57a33a9
|
@ -44,6 +44,28 @@ OC.FileUpload = function(uploader, data) {
|
||||||
OC.FileUpload.CONFLICT_MODE_DETECT = 0;
|
OC.FileUpload.CONFLICT_MODE_DETECT = 0;
|
||||||
OC.FileUpload.CONFLICT_MODE_OVERWRITE = 1;
|
OC.FileUpload.CONFLICT_MODE_OVERWRITE = 1;
|
||||||
OC.FileUpload.CONFLICT_MODE_AUTORENAME = 2;
|
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 = {
|
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
|
// in case folder drag and drop is not supported file will point to a directory
|
||||||
// http://stackoverflow.com/a/20448357
|
// 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;
|
var dirUploadFailure = false;
|
||||||
try {
|
try {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.readAsBinaryString(file);
|
reader.readAsBinaryString(file);
|
||||||
} catch (NS_ERROR_FILE_ACCESS_DENIED) {
|
} catch (error) {
|
||||||
|
console.log(reader, error)
|
||||||
//file is a directory
|
//file is a directory
|
||||||
dirUploadFailure = true;
|
dirUploadFailure = true;
|
||||||
}
|
}
|
||||||
|
@ -1059,6 +1082,7 @@ OC.Uploader.prototype = _.extend({
|
||||||
message = response.message;
|
message = response.message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.error(e, data, response)
|
||||||
OC.Notification.show(message || data.errorThrown, {type: 'error'});
|
OC.Notification.show(message || data.errorThrown, {type: 'error'});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue