Кнопка обзора, которая будет отображать файл изображения из локальной папки каталога в формате HTML - PullRequest
0 голосов
/ 25 мая 2018

Привет, я хотел знать, возможно ли создать в html кнопку, которая работает как кнопка «Обзор», например, при нажатии на нее будет отображаться каталог компьютера, такой как локальный диск, документы и т. Д.

ЧтоЯ хотел сделать, это использовать эту кнопку «Обзор», чтобы установить путь к папке с изображениями (.png / .jpeg), а затем после выбора папки каталога имя файла изображения должно отображаться в виде списка.

* Примечание. Аппарат подключен к локальной сети. Все используется совместно и не имеет ограничений.

Образец

Путь: C:\ Documents \ TargetFolder (это то, что будет просматриваться с помощью кнопки «Обзор», местоположение пути может измениться, может быть из другого местоположения на том же компьютере или с другого компьютера в той же сети, поэтому необходима кнопка «Обзор»)

Вывод: Из источника (TargetFolder), скажем, с 20 файлами изображений должен появиться список с именем файла изображения, свойствами пути (создани время) и фактическое изображение подтянуто.Также переключается в зависимости от того, что было выбрано в списке

Возможно ли это?

окно просмотра кнопки

веб-страница выглядит так

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Эта ссылка может помочь вам https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

, а также следовать приведенному ниже коду

var input = document.querySelector('input');
var preview = document.querySelector('.preview');

input.style.opacity = 0;input.addEventListener('change', updateImageDisplay);function updateImageDisplay() {
  while(preview.firstChild) {
    preview.removeChild(preview.firstChild);
  }

  var curFiles = input.files;
  if(curFiles.length === 0) {
    var para = document.createElement('p');
    para.textContent = 'No files currently selected for upload';
    preview.appendChild(para);
  } else {
    var list = document.createElement('ol');
    preview.appendChild(list);
    for(var i = 0; i < curFiles.length; i++) {
      var listItem = document.createElement('li');
      var para = document.createElement('p');
      if(validFileType(curFiles[i])) {
        para.textContent = 'File name ' + curFiles[i].name + ', file size ' + returnFileSize(curFiles[i].size) + '.';
        var image = document.createElement('img');
        image.src = window.URL.createObjectURL(curFiles[i]);

        listItem.appendChild(image);
        listItem.appendChild(para);

      } else {
        para.textContent = 'File name ' + curFiles[i].name + ': Not a valid file type. Update your selection.';
        listItem.appendChild(para);
      }

      list.appendChild(listItem);
    }
  }
}var fileTypes = [
  'image/jpeg',
  'image/pjpeg',
  'image/png'
]

function validFileType(file) {
  for(var i = 0; i < fileTypes.length; i++) {
    if(file.type === fileTypes[i]) {
      return true;
    }
  }

  return false;
}function returnFileSize(number) {
  if(number < 1024) {
    return number + 'bytes';
  } else if(number >= 1024 && number < 1048576) {
    return (number/1024).toFixed(1) + 'KB';
  } else if(number >= 1048576) {
    return (number/1048576).toFixed(1) + 'MB';
  }
}
html {
  font-family: sans-serif;
}

form {
  width: 600px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li, div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label, form button {
  background-color: #7F9CCB;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover, form button:hover {
  background-color: #2D5BA3;
  color: white;
}

form label:active, form button:active {
  background-color: #0D3F8F;
  color: white;
}
<form method="post" enctype="multipart/form-data">
  <div>
    <label for="image_uploads">Choose images to upload (PNG, JPG)</label>
    <input type="file" id="image_uploads" name="image_uploads" accept=".jpg, .jpeg, .png" multiple>
  </div>
  <div class="preview">
    <p>No files currently selected for upload</p>
  </div>
  <div>
    <button>Submit</button>
  </div>
</form>
0 голосов
/ 25 мая 2018

На самом деле вам нужен файловый менеджер (точнее, галерея файлов) в веб-браузере.

нет такой вещи, которая помогла бы вам это сделать без написания сотен строк кода.

...