Дипломная работа: Автоматизация процесса обработки заказов на печать фотографий в ООО "Партнер"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
23. Технические характеристики Kyocera Ecosys M2735DN. URL:
https://www.kyoceradocumentsolutions.ru/index/products/product/ecosysm2735
dn.technical_specification.html
24. Технические характеристики Mitsubishi Electric CP-D80DW.
URL: https://mitsubishielectric-printing.com/en/products/photo-printers-
solutions/photo-printers/cp-d80dw
97
Приложение 1. Листинг программных модулей
Программный код файла javascript.js
var $ = jQuery.noConflict();
$(document).ready(function() {
jQuery.event.props.push('dataTransfer');
// Максимальное количество загружаемых изображений за одни раз var maxFiles
= 100;
// Оповещение по умолчанию
var errMessage = 0;
// Кнопка выбора файлов
var defaultUploadBtn = $('#uploadbtn');
// Массив для всех изображений
var dataArray = [];
// Область информер о загруженных изображениях - скрыта
$('#uploaded-files').hide();
// Метод при падении файла в зону загрузки
$('#drop-files').on('drop', function(e) {
// Передаем в files все полученные изображения
var files = e.dataTransfer.files;
// Проверяем на максимальное количество файлов
if (files.length <= maxFiles) {
// Передаем массив с файлами в функцию загрузки на предпросмотр
loadInView(files);
} else {
alert('Вы не можете загружать больше ' + maxFiles + ' изображений!');
98
files.length = 0;
return;
}
});
// При нажатии на кнопку выбора файлов
defaultUploadBtn.on('change', function() {
// Заполняем массив выбранными изображениями
var files = $(this)[0].files;
// Проверяем на максимальное количество файлов
if (files.length <= maxFiles) {
// Передаем массив с файлами в функцию загрузки на предпросмотр
loadInView(files);
// Очищаем инпут файл путем сброса формы
$('#frm').each(function() {
this.reset();
});
} else {
alert('Вы не можете загружать больше ' + maxFiles + ' изображений!');
files.length = 0;
}
});
// Функция загрузки изображений на предросмотр
function loadInView(files) {
// Показываем обасть предпросмотра
$('#uploaded-holder').show();
// Для каждого файла
99
$.each(files, function(index, file) {
// Несколько оповещений при попытке загрузить не изображение
if (!files[index].type.match('image.*')) {
if (errMessage == 0) {
$('#drop-files p').html('Эй! только изображения!');
++errMessage
} else if (errMessage == 1) {
$('#drop-files p').html('Стоп! Загружаются только изображения!');
++errMessage
} else if (errMessage == 2) {
$('#drop-files p').html("Не умеешь читать? Только изображения!");
++errMessage
} else if (errMessage == 3) {
$('#drop-files p').html("Хорошо! Продолжай в том же духе");
errMessage = 0;
}
return false;
}
// Проверяем количество загружаемых элементов
if ((dataArray.length + files.length) <= maxFiles) {
// показываем область с кнопками
$('#upload-button').css({
'display': 'block'
});
} else {
alert('Вы не можете загружать больше ' + maxFiles + ' изображений!');
return;
}
100
// Создаем новый экземпляра FileReader
var fileReader = new FileReader();
// Инициируем функцию FileReader
fileReader.onload = (function(file) {
return function(e) {
// Помещаем URI изображения в массив
dataArray.push({
name: file.name,
value: this.result
});
addImage((dataArray.length - 1));
};
})(files[index]);
// Производим чтение картинки по URI
fileReader.readAsDataURL(file);
});
return false;
}
// Процедура добавления эскизов на страницу
function addImage(ind) {
// Если индекс отрицательный значит выводим весь массив изображений
if (ind < 0) {
start = 0;
end = dataArray.length;
} else {
// иначе только определенное изображение
start = ind;
end = ind + 1;
}
Источник: https://baza.diplomsite.ru/previewfile/2105