Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2018, 08:15
Новичок на форуме
Отправить личное сообщение для Miracle5 Посмотреть профиль Найти все сообщения от Miracle5
 
Регистрация: 20.02.2018
Сообщений: 9

Предварительный просмотр через input/file
Делаю небольшое приложение для пазлов, осталось дописать код, чтобы пользователь сам мог задавать изображение или через input/file, или input/text (т.е по URL).

Как сделать на javascript, чтобы при загрузке картинка автоматически подставлялась под поле. Т.е на сервер отправлять не нужно, чисто игра на странице.

<td style="vertical-align: top;">
                <div align="right" style="height: 585px; width: 320px; border: black solid 1px; overflow: auto;">
                    <div>
						<p>Загрузить свою картинку</p>
						<p><input type="file" name="photo" multiple accept="image/*,image/jpeg">
						<input type="submit" value="Загрузить">
						<p>или введите URL картинки</p>
						<input type="text" name="url_text" value="Введите URL фото">
						<input type="submit" name="url_photo" value="Подтвердить"></p>

                        <img id="img1" width="300" height="200" ondblclick="LoadNewImage(this.id);" src="Images/BugsLife.jpg"></img>
                    </div>
                </div>
            </td>


Первая картинка статистическая, нужно добавить такое же поле с изменением id=img(тут счетчик +1) и src брать от input/file
<img id="img1" width="300" height="200" ondblclick="LoadNewImage(this.id);" src="Images/BugsLife.jpg"></img>


Как это сделать?

Последний раз редактировалось Miracle5, 23.03.2018 в 08:18.
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2018, 09:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Miracle5, через input/file файл "забрать" может только сервер. Клиент к этому файлу доступа не получит.

А вот если пользователь введет в input/text путь и имя файла, то картинка твоя!

<img src='' />
<script type='text/javascript'>
var url='d:\\doc\\ksa.jpg';
document.querySelector('img').src=url;
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2018, 09:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ksa
через input/file файл "забрать" может только сервер. Клиент к этому файлу доступа не получит.
Это почему?
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2018, 09:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

laimas, лучше пример покажи как сделать.
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2018, 09:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ksa
лучше пример покажи как сделать.
https://developer.mozilla.org/ru/doc...API/FileReader - метод .readAsDataURL(), его возвращаемые данные в src изображения.
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2018, 10:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от laimas
метод .readAsDataURL()
Ошибка...
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
label {
	display: block;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<label>
	Выбор файла
	<input type='file' id='test' />
</label>
<button onclick='test();'>Test</button>
<script type='text/javascript'>
function test(){
	var o=document.querySelector('input');
	alert(o.readAsDataURL());
};
</script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2018, 10:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

laimas, т.е. пример покажи...
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2018, 10:42
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

ksa,
Сообщение от ksa
Ошибка...
вы шутите что ли?)

Upd. вот с FileReader.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
label {
	display: block;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<label>
	Выбор файла
	<input type='file' id='test' />
</label>
<button onclick='test();'>Test</button>
<script type='text/javascript'>
function test(){
var input=document.querySelector('input');
		if(!input.files.length)
			return;
		
		var fReader=new FileReader();
		fReader.onload=function(){
			alert(this.result);
		};
		fReader.readAsDataURL(input.files[0]);
};
</script>
</body>
</html>

Вот с URL.createObjectURL.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
label {
	display: block;
}
#preview img{
	max-width:100px;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<label>
	Выбор файла
	<input type='file' id='test' />
</label>
<button onclick='test();'>Test</button>
<div id="preview"></div>
<script type='text/javascript'>
function test(){
	var input=document.querySelector('input');
		if(!input.files.length)
			return;
		
		var img=document.createElement('img');
		img.src=URL.createObjectURL(input.files[0]);
		document.querySelector('#preview').appendChild(img);
};
</script>
</body>
</html>

Последний раз редактировалось Nexus, 23.03.2018 в 10:50.
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2018, 10:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


readAsDataURL
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2018, 11:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ksa
т.е. пример покажи...
Да только на этом форуме этих примеров уже и так как грязи, и я тоже такой "плагиат" здесь писал. Ну сколько можно?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
eMail через JS konstantinopol Общие вопросы Javascript 15 12.01.2015 10:06
Как правильно загрузить через framework Mateus jQuery 5 11.01.2013 20:08
Перенос Name элемента через Jquery titanrat Общие вопросы Javascript 2 05.12.2012 14:20
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44
Просмотр передаваемых данных через AJAX Гость AJAX и COMET 3 04.08.2008 14:34