как получить имя файла при загрузке его
надо по клику начав процесс якобы "загрузки файла на сервер" получить имя и может быть даже путь выбранного файла для использования этого имени в дальнейшем в программе - например для фоновой картинки элемента
это возможно? |
Имя пожалуйста, а вот путь браузеры "не выдают".
|
возможно
посмотри e.target.files возвращаемый input[file] на событии change а потом преобразуй его в урл, примерно так: var URL = window.webkitURL || window.URL; var url = URL.createObjectURL(e.target.files[0]) естественно это будет ссылка на локальный файл, после загрузки подменишь его ссылкой на сервер |
решение найдено:
<input id="выбор_файла" type="file" accept="image/*" onchange="функция1(this.files)"> #выбор_файла {display:none;} var функция1=function(files) { var file = files[0]; alert(file.name); //имя файла alert(file.size); //размер файла } кнопка_загрузки.onclick = function() { выбор_файла.click(); //имитация нажатия скрытой кнопки "выбор_файла" } |
- недостаток метода в том что надо создавать инпут который приходится скрывать
вопрос - как без инпута сделать то же самое |
однако опять засада - не могу получить имя файла и вписать его в красную кнопку:
<!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <title></title> <style type="text/css" id=""> #файл_картинки { display:flex; width: 74px; height: 44px; border: 2px solid red; } </style> <script type="text/javascript"> "use strict"; var получение_имени_картинки = function(files) { var file = files[0]; имя_файла_картинки = file.name; }; var выбор_файла = function() { выбор_файла_картинки.click(); файл_картинки.textContent = имя_файла_картинки; }; var имя_файла_картинки; </script> </head> <body> <span id='файл_картинки' class='кнопка_css'onclick='выбор_файла()'></span> <input id="выбор_файла_картинки" class='скрытый' type="file" accept="image/*" onchange="получение_имени_картинки(this.files)"> </body> </html> |
Часовой пояс GMT +3, время: 03:27. |