- js: Как прочитать файл с компьютера
- Своя кнопка для выбора файла
- Чтение и вывод текстового файла
- Как вывести изображение, выбранное через input
- Добавить комментарий Отменить ответ
- Поиск по сайту:
- Полезное
- Рубрики
- Комментарии
- Метки
- Полностью своя кнопка «Выбрать файл»
- Преамбула
- Технология работы
- Open Select File Dialog Box Using JavaScript
- HTML Code
- .click() Method
- getElementById() Method
- JavaScript Code
- Как открыть диалог выбора файла через JS?
- 7 ответов
- Использование jQuery
- Использование Vanilla JS
- Только JS — нет необходимости в jquery
- Обработка файлов
- Но что, если нам нужно содержимое файла?
- Пример — «Stackoverflow новое фоновое изображение!»
js: Как прочитать файл с компьютера
Задача: Прочитать и вывести в браузер из js-скрипта локальный файл (текст или изображение), который пользователь выберет на своем компьютере.
Своя кнопка для выбора файла
Можно вместо стандартного элемента выбора файла показать свою кнопку. Скрываем элемент
accept=».txt» — чтобы для выбора были доступны только текстовые файлы
При клике на кнопке выполняем клик на скрытом стандартном элементе с id=»myfile».
document.getElementById("choosefile").onclick = function()< document.getElementById("myfile").click(); >
Чтение и вывод текстового файла
Результат выбора пользователя доступен как массив, даже когда может быть выбран только один файл, и это первый файл в массиве, т.е. с индексом 0.
document.getElementById("myfile").onchange = function(e) < if (this.files==undefined) < // Отмена return; >// Покажем имя файла this.files[0].name document.getElementById("thefile").innerHTML="Вы выбрали файл " + this.files[0].name; // Чтение файла readtheFile(this); // если нужно, чтобы событие onchange происходило при выборе того же файла this.value = null; > // .onchange function readtheFile(object) < var file = object.files[0]; var reader = new FileReader(); reader.onload = function() < let rows = reader.result.split('\r\n'); // массив строк текстового файла var srt=""; rows.forEach(function(entry) < str+="" + entry + "
"; >); // Покажем содержимое текстового файла document.getElementById('out').innerHTML = str; > reader.readAsText(file); >; //readtheFile(object)
Как вывести изображение, выбранное через input
Чтобы получить src, например, для img, можно использовать readAsDataURL
document.getElementById("imgfile").onchange = function() < if (this.files==undefined) < return;>var file = this.files[0]; var reader = new FileReader(); reader.onload = function(e) < var image = document.createElement("img"); image.src = e.target.result; document.getElementById('outimg').appendChild(image); >reader.readAsDataURL(file); >
document.getElementById("imgfile").onchange = function() < if (this.files==undefined) < return;>var file = this.files[0]; var image = document.createElement("img"); image.src = URL.createObjectURL(file); document.getElementById('outimg').appendChild(image); >
Добавить комментарий Отменить ответ
Поиск по сайту:
Полезное
- Search documentation on wordpress.org
- Как узнать id в WordPress
- Как подключить JavaScript-код и CSS-стили в WordPress
- Color Blender Подбор цветовой палитры
- Whois (IPv4 и IPv6) и проверка на вирусы, Your IP
Следи за своими сайтами!
Список сайтов в Яндекс.Метрике
Рубрики
- Apache (4)
- htaccess (3)
- WordPress-рецепты (8)
- Навигация (4)
- Плагины WordPress (14)
- Подписка на блог (2)
- Проблемы (12)
- Создание и изменение темы (9)
- Самая простая тема для WordPress (2)
- CSS (3)
- JavaScript (8)
- Learning jQuery (1)
- Браузеры (3)
- Домен и хостинг (1)
- Инструменты Google (2)
- SnagIt (1)
Комментарии
- Леонид к записи Простая карта сайта для WordPress
- Admin к записи Если не загружаются файлы в WordPress
- Марина к записи Если не загружаются файлы в WordPress
- Mobile2blogger к записи Создание плагина: шорткоды
- Jack к записи Функция has_cap вызвана с устаревшим аргументом
Метки
На этом сайте используются куки для наилучшего представления содержимого. Если вы продолжите просматривать сайт, мы будем считать что вас это устраивает. Подробнее Понятно
Полностью своя кнопка «Выбрать файл»
Предлагаю на суд сообщества свой велосипед. На написание данного текста вдохновил Способ №5 из материала Делаем красивый input[type=file] для адаптивного сайта… И да — все работает в IE, начиная с 9 версии.
Цель: создать свою кнопку/элемент управления по нажатию которой происходит загрузка файла на сервер (либо иные, предусмотренные разработчиком, файловые операции).
Инструменты: CSS, PHP, JavaScript.
Используемые технологии: Ajax, через скрытый iframe.Преамбула
Из кода для упрощения сознательно выкинуты все процедуры проверки принятого файла и try-catch вызовов функций, так как эти моменты не являются темой данной статьи. Также не охватывается момент по предотвращению звукового сигнала в IE. В работе используем технологию Ajax, подразумевающую, что у нас есть основная страница, осуществляющая взаимодействие с пользователем(front-end) и скрипт на сервере, обрабатывающая наши запросы(back-end)
Технология работы
1. На главной странице создаем «form action» Делаем ей target на скрытый фрейм, который создаем статически (или динамически). Создаем два «input» с типом «file» и «submit», даем им «id», помещаем их в «div», который спрячем со страницы стилем. Все эти элементы не видимы для пользователя и не воспринимают каких-либо его действий.
2. Начинаем «магию». Для «input» с типом «file» на событие по изменению вешаем вызов функции onchange=«LoadFile();».
3. На главной странице создаем кнопку. Навешиваем ей на событие нажатия кнопки мыши вызов функции onclick=«FindFile();».
4. В функции FindFile() имитируем клик на «input» с типом «file». То есть при нажатии на нашу кнопку вызывается стандартный диалог выбора файла. Как только пользователь выбрал файл, срабатывает событие onchange и вызывается функция LoadFile(). В функции LoadFile() имитируем клик на «input» с типом «submit».
5. Форма формирует POST запрос с именем файла к нашему back-end скрипту, который осуществляет все проверки по безопасности и загрузку файла. После этого скрипт вызывает callback функцию главной страницы, которой сообщает о результате выполнения.Собственно все. Для примера приведены четыре основных файла, код которых приведён ниже:
css/style.css – стили главной страницы
view/upload.php – back-end скрипт загрузки файла
index.php – главная страницы
js/upload.js – front-end скрипты главной страницыКроме того, необходим любой файл с картинкой для кнопки buttons/openfile.png
Загружаемые файлы помещаем в директорию ../temp/
.navButtons < border:1px gray solid; position:absolute; overflow: hidden; display:block; height:50px; width:50px; margin:10px; -moz-box-shadow:5px 5px 7px rgba(3,33,33,.7); -webkit-box-shadow: 5px 5px 7px rgba(3,33,33,.7); box-shadow: 5px 5px 7px rgba(3,33,33,.7); -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px; >.navButtons:hover < border:2px solid black; background-color:#fff; >.hiddenInput < position:absolute; overflow: hidden; display:block; height:0px; width:0px; >Input мы просто делаем нулевой ширины и высоты
window.parent.onResponse("'.$obj.'"); '; > // определяем куда скопируем файл пользователя $dir = '../temp/'; $name = basename($_FILES['loadfile']['name']); $file = $dir . $name; //копируем файл и получаем результат $success = move_uploaded_file($_FILES['loadfile']['tmp_name'], $file); //вызываем callback функцию и передаем ей результат jsOnResponse(""); ?>