Рубрики
Без рубрики

Загрузка файла с помощью панели прогресса HTML CSS & JavaScript

Эй, друзья, сегодня в этом блоге вы будете загружать файл с прогрессом в HTML CSS и … с тегами HTML, CSS, JavaScript, Programming.

Эй, друзья, сегодня в этом блоге вы будете загружать файл с прогрессом в 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

Browse File to Upload

Во -вторых, создайте файл 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 = `
  • ${name} • Uploading ${fileLoaded}%
  • `; uploadedArea.classList.add("onprogress"); progressArea.innerHTML = progressHTML; if(loaded == total){ progressArea.innerHTML = ""; let uploadedHTML = `
  • ${name} • Uploaded ${fileSize}
  • `; uploadedArea.classList.remove("onprogress"); uploadedArea.insertAdjacentHTML("afterbegin", uploadedHTML); } }); let data = new FormData(form); xhr.send(data); }

    Наконец, создайте файл PHP с именем message.php и вставьте заданные коды в свой PHP -файл. Помните, вы создаете файл с .php расширение.

    
    

    Так что это все на сегодня. Надеюсь, вам это нравится. Вы можете проверить более полезный пост в Код с имамом Анкет

    Всего наилучшего!

    Оригинал: “https://dev.to/afzalimamias/file-upload-with-progress-bar-html-css-javascript-7em”