Эй, друзья, сегодня в этом блоге вы будете загружать файл с прогрессом в HTML CSS & JavaScript.
В этом проекте (загрузка файла javaScript с помощью панели прогресса), как вы можете видеть на изображении предварительного просмотра, есть два изображения загрузчика файла. В первом есть пунктированный граничный контейнер со значком и текстом, чтобы просмотреть файл для загрузки.
Рекомендуемая книга : Богатый папа бедный папа pdf
Когда вы нажимаете на этот контейнер, откроется окно открытого файла, и вы можете выбрать любой файл для загрузки. После выбора файла вы сможете увидеть на втором изображении, показан состояние загрузки файла с именем файла, загруженным процентом, панелью хода и т. Д. И есть история загруженных файлов с именем файла, размером и т. Д.
Я надеюсь, что вы хотите получить исходные коды или файлы этого проекта, но не волнуйтесь, я дал всем исходным кодам в нижней части страницы. Но перед копированием кодов давайте поговорим о важных кодах и концепциях, стоящих за созданием этого загрузчика этого файла.
В файле JavaScript я использовал событие изменения, чтобы выбрать пользователь выбрал имя файла, а затем позвонил в uploadfile (имя файла) Функция с передачей имени файла в качестве аргумента. Внутри uploadfile () Функция, используя AJAX, я отправил выбранный файл в PHP. Как вы могли видеть в кодах, я использовал свойство загрузки и событие Progress, чтобы получить загруженное значение файла и общий размер файла.
В файле PHP я получил файл и добавил текущее время перед именем файла, чтобы сделать динамическое имя файла и переместил этот файл в папку Files, используя встроенную функцию PHP MOVE_UPLOADED_FILE Анкет
Загрузить файл JavaScript с помощью панели прогресса [исходные коды]
Чтобы создать этот проект (загрузка файла javaScript). Во -первых, вам нужно создать четыре файла: HTML, CSS, JavaScript & PHP -файлы Анкет После создания этих файлов просто вставьте следующие коды в свой файл. Помните, что вы создаете папку с именем PHP, и внутри этой папки вы создаете PHP -файл имя upload.php и папка файлов для сохранения всех загруженных файлов.
Сначала создайте HTML -файл с именем index.html и вставьте заданные коды в свой HTML -файл. Помните, вы создаете файл с .html расширение.
File Upload JavaScript with Progress Ba File Uploader JavaScript
Во -вторых, создайте файл CSS с именем style.css и вставьте заданные коды в свой файл CSS. Помните, вы создаете файл с .css расширение.
/* Import Google font - Poppins */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Poppins", sans-serif;
}
body{
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
background: #6990F2;
}
::selection{
color: #fff;
background: #6990F2;
}
.wrapper{
width: 430px;
background: #fff;
border-radius: 5px;
padding: 30px;
box-shadow: 7px 7px 12px rgba(0,0,0,0.05);
}
.wrapper header{
color: #6990F2;
font-size: 27px;
font-weight: 600;
text-align: center;
}
.wrapper form{
height: 167px;
display: flex;
cursor: pointer;
margin: 30px 0;
align-items: center;
justify-content: center;
flex-direction: column;
border-radius: 5px;
border: 2px dashed #6990F2;
}
form :where(i, p){
color: #6990F2;
}
form i{
font-size: 50px;
}
form p{
margin-top: 15px;
font-size: 16px;
}
section .row{
margin-bottom: 10px;
background: #E9F0FF;
list-style: none;
padding: 15px 20px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: space-between;
}
section .row i{
color: #6990F2;
font-size: 30px;
}
section .details span{
font-size: 14px;
}
.progress-area .row .content{
width: 100%;
margin-left: 15px;
}
.progress-area .details{
display: flex;
align-items: center;
margin-bottom: 7px;
justify-content: space-between;
}
.progress-area .content .progress-bar{
height: 6px;
width: 100%;
margin-bottom: 4px;
background: #fff;
border-radius: 30px;
}
.content .progress-bar .progress{
height: 100%;
width: 0%;
background: #6990F2;
border-radius: inherit;
}
.uploaded-area{
max-height: 232px;
overflow-y: scroll;
}
.uploaded-area.onprogress{
max-height: 150px;
}
.uploaded-area::-webkit-scrollbar{
width: 0px;
}
.uploaded-area .row .content{
display: flex;
align-items: center;
}
.uploaded-area .row .details{
display: flex;
margin-left: 15px;
flex-direction: column;
}
.uploaded-area .row .details .size{
color: #404040;
font-size: 11px;
}
.uploaded-area i.fa-check{
font-size: 16px;
}
В -третьих, создайте файл JavaScript с именем script.js и вставьте заданные коды в свой файл JavaScript. Помните, вы создаете файл с .js расширение.
const form = document.querySelector("form"),
fileInput = document.querySelector(".file-input"),
progressArea = document.querySelector(".progress-area"),
uploadedArea = document.querySelector(".uploaded-area");
form.addEventListener("click", () =>{
fileInput.click();
});
fileInput.onchange = ({target})=>{
let file = target.files[0];
if(file){
let fileName = file.name;
if(fileName.length >= 12){
let splitName = fileName.split('.');
fileName = splitName[0].substring(0, 13) + "... ." + splitName[1];
}
uploadFile(fileName);
}
}
function uploadFile(name){
let xhr = new XMLHttpRequest();
xhr.open("POST", "php/upload.php");
xhr.upload.addEventListener("progress", ({loaded, total}) =>{
let fileLoaded = Math.floor((loaded / total) * 100);
let fileTotal = Math.floor(total / 1000);
let fileSize;
(fileTotal < 1024) ? fileSize = fileTotal + " KB" : fileSize = (loaded / (1024*1024)).toFixed(2) + " MB";
let progressHTML = `Наконец, создайте файл PHP с именем message.php и вставьте заданные коды в свой PHP -файл. Помните, вы создаете файл с .php расширение.
Так что это все на сегодня. Надеюсь, вам это нравится. Вы можете проверить более полезный пост в Код с имамом Анкет
Всего наилучшего!
Оригинал: “https://dev.to/afzalimamias/file-upload-with-progress-bar-html-css-javascript-7em”