<?php
/*
--------------------------
Класс для работы с файлами
--------------------------
*/
CLASS FILE{
/*
---------------------------------------
Загрузка файла
---------------------------------------
*/
PUBLIC STATIC FUNCTION UPLOAD($path, $name = 'Выберите файл', $form = 1, $class = 'file-upload', $icon = 'upload') {
GLOBAL $user;
//$path - путь обращения к обработчику
//$name - описание выгрузки
//$form - использование собственной формы отправки
//$class - стиль кнопки
//$icon - иконка кнопки
?>
<? IF ($form == 1){ ?>
<form id="js-form" method="post" enctype="multipart/form-data">
<? } ?>
<label class='file-label'><span class="<?=$class?>">
<input id="js-file" type="file" name="file" class="file-form" multiple>
<span><i class="fa fa-<?=$icon?> fa-fw"></i> <?=$name?></span>
</span></label>
<? IF ($form == 1){ ?>
</form>
<? } ?>
<div id="result"></div>
<script>
$('#js-file').change(function() {
$('#js-form').ajaxSubmit({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
percentComplete = parseInt(percentComplete * 100);
var data_progress = "<div class='file-upload-progress'><i class='fa fa-spinner fa-pulse fa-lg fa-fw'></i> <b>Загрузка...</b><br /><br /><div class='file-upload-progress-ind-o'><div class='file-upload-progress-ind' style='width:"+percentComplete+"%;'><span class='file-upload-progress-pr'>"+percentComplete+"%</span></div></div></div>";
$('#result').html(data_progress);
if (percentComplete === 100) {
$('#result').html("<div class='file-upload-progress'><font color='#4BBB62'><i class='fa fa-check fa-lg fa-fw'></i> <b>Успешно загружено</b></font><br /><br /><div class='file-upload-progress-ind-o'><div class='file-upload-progress-ind-green' style='width:100%;'><span class='file-upload-progress-pr'>100%</span></div></div></div>");
}
}
}, false);
return xhr;
},
type: "POST",
url: "<?=$path?>",
target: "#result",
success: function() {
// После загрузки файла очистим форму
$('#js-form')[0].reset();
},
error: function() {
$('#result').html("<div class='file-upload-progress'><i class='fa fa-exclamation-triangle fa-fw'></i> Ошибка. Попробуйте ещё раз или проверьте подключение и интернету</div>");
}
});
});
</script>
<?
}
}
?>