@Frel
На распутье

Как эмулировать загрузку изображений input[type=file], через button?

Как эмулировать загрузку изображений input[type=file], через button?
Как-то так
p.s. Уже задавал вопрос, но все таки может найдется ответ!
  • Вопрос задан
  • 878 просмотров
Решения вопроса 4
Stalker_RED
@Stalker_RED
Нельзя эмулировать. Потому что у браузеров есть политика безопасности, которая позволяет забирать с компьютера только те файлы, которые юзер выбрал.

Можно СКРЫТЬ input[type=file], сделать его прозрачным, например, а под ним разместить кнопку.

Вот пример: https://jsfiddle.net/2wwgz9h9/
Сейчас стоит opacity: 0.7; а если поставить 0 он будет полностью прозрачным.
Ответ написан
Комментировать
@timda
asp.net веб-разработчик
Прежде чем спрашивать надо четко сформулировать вопрос, и перед этим понять - может ли вы сформулировать вопрос.
Так или иначе ответ лежит в плоскости применения протоколов и технологий, на которых работает Интернет.
Эмулировать можно многое, но в Интернете это называется по-разному, например, дорвеями или клоакингом.
Из вашего вопроса я вижу что хотите сделать автоматическую загрузку выбранного на клиенте файла - так это уже лет как 10 сделано в многих компонентах.
Лет 10 назад обычно на такие вопросы отвечали RTFM.
Ответ написан
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
jamesgoodwin
@jamesgoodwin
Молодой разработчик
В документации

UPDATE
<input type="file" id="file_uploading" style="display: none;"/>
<button onclick="onClickButton()">
Ваша кнопка
</button>

<script>
function onClickButton(){
 document.getElementById('file_uploading').click();
}
</script>


UPDATE 2
Полная версия:
<img src="" height="200" alt="Image preview...">
<input type="file" id="file_uploading" style="display: none;" onchange="previewFile()"/>
<button onclick="onClickButton()">
Ваша кнопка
</button>

<script>
function onClickButton(){
 document.getElementById('file_uploading').click();
}

function previewFile() {
  var preview = document.querySelector('img');
  var file    = document.querySelector('input[type=file]').files[0];
  var reader  = new FileReader();

  reader.onloadend = function () {
    preview.src = reader.result;
  }

  if (file) {
    reader.readAsDataURL(file);
  } else {
    preview.src = "";
  }
}
</script>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 12:20
15000 руб./за проект
25 апр. 2024, в 12:08
300 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект