Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2015, 14:16
Аватар для petrovich
Интересующийся
Отправить личное сообщение для petrovich Посмотреть профиль Найти все сообщения от petrovich
 
Регистрация: 01.06.2015
Сообщений: 17

как получить имя файла при загрузке его
надо по клику начав процесс якобы "загрузки файла на сервер" получить имя и может быть даже путь выбранного файла для использования этого имени в дальнейшем в программе - например для фоновой картинки элемента

это возможно?
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2015, 14:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Имя пожалуйста, а вот путь браузеры "не выдают".
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2015, 17:40
Интересующийся
Отправить личное сообщение для ravend Посмотреть профиль Найти все сообщения от ravend
 
Регистрация: 06.04.2011
Сообщений: 18

возможно
посмотри e.target.files возвращаемый input[file] на событии change
а потом преобразуй его в урл, примерно так:

var URL = window.webkitURL || window.URL;
var url = URL.createObjectURL(e.target.files[0])


естественно это будет ссылка на локальный файл, после загрузки подменишь его ссылкой на сервер
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2015, 13:17
Аватар для petrovich
Интересующийся
Отправить личное сообщение для petrovich Посмотреть профиль Найти все сообщения от petrovich
 
Регистрация: 01.06.2015
Сообщений: 17

решение найдено:


<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(); //имитация нажатия скрытой кнопки "выбор_файла"
}
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2015, 13:18
Аватар для petrovich
Интересующийся
Отправить личное сообщение для petrovich Посмотреть профиль Найти все сообщения от petrovich
 
Регистрация: 01.06.2015
Сообщений: 17

- недостаток метода в том что надо создавать инпут который приходится скрывать

вопрос - как без инпута сделать то же самое
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2015, 17:01
Аватар для petrovich
Интересующийся
Отправить личное сообщение для petrovich Посмотреть профиль Найти все сообщения от petrovich
 
Регистрация: 01.06.2015
Сообщений: 17

однако опять засада - не могу получить имя файла и вписать его в красную кнопку:


<!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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить innerHTML при клике prope Общие вопросы Javascript 3 10.01.2014 17:13
Имя массива, как строковая переменная, при обращении bugiman Элементы интерфейса 4 18.11.2013 15:44
Не работает onchange при повторной загрузке файла kuzya_vl Элементы интерфейса 4 17.02.2013 10:26
Как вызвать функцию при загрузке страницы? Yevgeniy Events/DOM/Window 1 30.01.2013 17:34
Как открыть модальное окно сразу при загрузке страницы dgabets jQuery 3 13.02.2012 21:03