Недавно мы реализовали способность наших участников загружать изображение. Он работал отлично в течение нескольких месяцев. Недавно он перестал работать в Chrome, но продолжает работать в Firefox, Safari и Internet Explorer.Загрузка изображения Chrome не работает; другие браузеры прекрасны
сообщение об ошибке, что Chrome является порождающим выглядит следующим образом:
Uncaught TypeError: Не удалось установить свойство «файлы» на «HTMLInputElement»: Указанное значение не типа «FileList».
раздел кода, который испытывает проблемы заключается в следующем: появляется сообщение
$(window).load(function()
{
var aFiletypesAllowed = ["png","gif","jpeg","jpg"];
var FileTypesPrintable = 'png, gif, jpeg, jpg"';
var form = document.getElementById('image-submit');
var options =
{
thumbBox: '.thumbBox',
imgSrc: ''
}
var cropper = $('.imageBox').cropbox(options);
$('#file').on('change', function()
{
var reader = new FileReader();
reader.onload = function(e)
{
options.imgSrc = e.target.result;
cropper = $('.imageBox').cropbox(options);
}
reader.readAsDataURL(this.files[0]);
this.files = [];
fileSize = this.files[0].size;
fileName = this.value;
})
$('#btnCrop').on('click', function()
{
//file validation
var filetype = fileName.split('.').pop().toLowerCase();
fileWidth = cropper.getWidth();
fileHeight = cropper.getHeight();
//check file type
if (aFiletypesAllowed.indexOf(filetype) < 0)
{
var filenameUsed = fileName.split('\\').pop();
jConfirm('Invalid Filetype', filenameUsed + ' is not an allowed file type. Allowed filetypes are ' + FileTypesPrintable, '', '', '', '', '', '', '', '', 180);
document.getElementById('file').value = '';
}
//check image dimensions -- at least one dimension must be over the limit to ensure a crop occurs, and the image is modified in some way
else if (fileWidth < 200 && fileHeight < 200)
{
jConfirm('Image too Small', 'Minimum allowed image size is 200 x 200. Your image is ' + fileWidth + ' x ' + fileHeight + '. Please choose a larger image.', '', '', '', '', '', '', '', '', 180);
document.getElementById('file').value = '';
}
//validation passed, perform crop
else
{
var img = cropper.getDataURL();
$('.cropped').html('<img id="cropped-img" src="'+img+'">'); //image to display
$('#cropped-to-send').val(img); //dataURL to upload
}
})
Ошибка быть порождена строки кода «this.files = [];». После этой ошибки другая ошибка вызывается строкой «var filetype = fileName.split ('.'). Pop(). ToLowerCase();". Ошибка в этой строке «fileName не определена».
Как указано выше, эта функция работает в течение нескольких месяцев в Chrome и продолжает отлично работать в Firefox, Safari и Internet Explorer.
Код, который вы используете? – epascarello
Является ли значение типа 'FileList'? –
* «Мы недавно реализовали» * не рассказывают нам о том, как ... где код, который вызывает ошибку? – charlietfl