JS-uploader can't download, don't try

This commit is contained in:
onli 2015-01-18 21:00:11 +01:00
parent dcb044fb28
commit 4b83f8dcce

View File

@ -1392,100 +1392,102 @@ $(function() {
successIcon = document.createElement('span');
successIcon.className = 'uploadIcon icon-ok-circled';
$('#uploadform').submit(function(event) {
event.preventDefault();
$('.uploadform_userfile').each(function() {
var files = this.files;
for (var i = 0; i < files.length; i++) {
var reader = new FileReader();
reader.file = files[i];
reader.onload = function(readerEvent) {
var image = new Image();
var file = this.file;
image.onload = function (imageEvent) {
var canvas = document.createElement('canvas'),
max_width = {if {serendipity_getConfigVar key='maxImgWidth'}}{serendipity_getConfigVar key='maxImgWidth'}{else}0{/if},
max_height = {if {serendipity_getConfigVar key='maxImgHeight'}}{serendipity_getConfigVar key='maxImgHeight'}{else}0{/if},
width = image.width,
height = image.height;
if (! $('#imageurl').val()) {
event.preventDefault();
$('.uploadform_userfile').each(function() {
var files = this.files;
for (var i = 0; i < files.length; i++) {
var reader = new FileReader();
reader.file = files[i];
reader.onload = function(readerEvent) {
var image = new Image();
var file = this.file;
image.onload = function (imageEvent) {
var canvas = document.createElement('canvas'),
max_width = {if {serendipity_getConfigVar key='maxImgWidth'}}{serendipity_getConfigVar key='maxImgWidth'}{else}0{/if},
max_height = {if {serendipity_getConfigVar key='maxImgHeight'}}{serendipity_getConfigVar key='maxImgHeight'}{else}0{/if},
width = image.width,
height = image.height;
if (max_width > 0 && width > max_width) {
height *= max_width / width;
width = max_width;
}
if (max_height > 0 && height > max_height) {
width *= max_height / height;
height = max_height;
}
if (max_width > 0 && width > max_width) {
height *= max_width / width;
width = max_width;
}
if (max_height > 0 && height > max_height) {
width *= max_height / height;
height = max_height;
}
canvas.width = width;
canvas.height = height;
canvas.getContext('2d').drawImage(image, 0, 0, width, height);
var data = new FormData();
data.append('serendipity[action]', 'admin');
data.append('serendipity[adminModule]', 'media');
data.append('serendipity[adminAction]', 'add');
data.append('serendipity[token]', $('input[name*="serendipity[token]"]').val());
data.append('serendipity[target_filename][1]', $('input[name*="serendipity[target_filename][1]"]').val());
data.append('serendipity[all_authors]', true);
var type = file.type;
if (type == "image/bmp") {
{* bmp is not supported *}
type = "image/png";
data.append('serendipity[target_filename][1]', file.name.replace('.bmp', '.png'));
}
canvas.toBlob(function(blob) {
data.append('serendipity[userfile][1]', blob, file.name);
var progress = document.createElement('progress');
var progressContainer = document.createElement('span');
progressContainer.className = 'msg_notice';
progress.max = 100;
progress.value = 0;
$(progressContainer).append(progressIcon);
progressContainer.innerHTML += file.name + ": "
$(progressContainer).append(progress);
$('.form_buttons').append(progressContainer);
$.ajax({
type: 'post',
url: $('#uploadform').attr('action'),
data: data,
cache: false,
processData: false,
contentType: false,
xhrFields: {
onprogress: function (e) {
if (e.lengthComputable) {
progress.value = e.loaded / e.total * 100;
canvas.width = width;
canvas.height = height;
canvas.getContext('2d').drawImage(image, 0, 0, width, height);
var data = new FormData();
data.append('serendipity[action]', 'admin');
data.append('serendipity[adminModule]', 'media');
data.append('serendipity[adminAction]', 'add');
data.append('serendipity[token]', $('input[name*="serendipity[token]"]').val());
data.append('serendipity[target_filename][1]', $('input[name*="serendipity[target_filename][1]"]').val());
data.append('serendipity[all_authors]', true);
var type = file.type;
if (type == "image/bmp") {
{* bmp is not supported *}
type = "image/png";
data.append('serendipity[target_filename][1]', file.name.replace('.bmp', '.png'));
}
canvas.toBlob(function(blob) {
data.append('serendipity[userfile][1]', blob, file.name);
var progress = document.createElement('progress');
var progressContainer = document.createElement('span');
progressContainer.className = 'msg_notice';
progress.max = 100;
progress.value = 0;
$(progressContainer).append(progressIcon);
progressContainer.innerHTML += file.name + ": "
$(progressContainer).append(progress);
$('.form_buttons').append(progressContainer);
$.ajax({
type: 'post',
url: $('#uploadform').attr('action'),
data: data,
cache: false,
processData: false,
contentType: false,
xhrFields: {
onprogress: function (e) {
if (e.lengthComputable) {
progress.value = e.loaded / e.total * 100;
}
}
}
}
}).done(function(data) {
progress.value = 100;
progressContainer.className = "msg_success";
$(progressContainer).find('.uploadIcon').replaceWith(successIcon.cloneNode(true));
}).fail(function(data) {
progressContainer.className = "msg_error";
progress.disabled = true;
progressContainer.innerHTML += "{$CONST.ERROR_UNKNOWN_NOUPLOAD}";
$(progressContainer).find('.uploadIcon').replaceWith(errorIcon.cloneNode(true));
}).always(function() {
if ($('#ml_link').length == 0) {
var mlLink = document.createElement('a');
mlLink.id = "ml_link";
mlLink.className = "button_link";
mlLink.href = $('#uploadform').attr('action');
mlLink.innerHTML = "{$CONST.MEDIA_LIBRARY}";
$(mlLink).hide();
$('.form_buttons').prepend(mlLink);
$(mlLink).fadeIn();
}
});
}, type);
}).done(function(data) {
progress.value = 100;
progressContainer.className = "msg_success";
$(progressContainer).find('.uploadIcon').replaceWith(successIcon.cloneNode(true));
}).fail(function(data) {
progressContainer.className = "msg_error";
progress.disabled = true;
progressContainer.innerHTML += "{$CONST.ERROR_UNKNOWN_NOUPLOAD}";
$(progressContainer).find('.uploadIcon').replaceWith(errorIcon.cloneNode(true));
}).always(function() {
if ($('#ml_link').length == 0) {
var mlLink = document.createElement('a');
mlLink.id = "ml_link";
mlLink.className = "button_link";
mlLink.href = $('#uploadform').attr('action');
mlLink.innerHTML = "{$CONST.MEDIA_LIBRARY}";
$(mlLink).hide();
$('.form_buttons').prepend(mlLink);
$(mlLink).fadeIn();
}
});
}, type);
}
image.src = readerEvent.target.result;
}
image.src = readerEvent.target.result;
reader.readAsDataURL(reader.file);
}
reader.readAsDataURL(reader.file);
}
});
});
}
});
}
{/if}