Предварительный просмотр через 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, через input/file файл "забрать" может только сервер. Клиент к этому файлу доступа не получит.
А вот если пользователь введет в input/text путь и имя файла, то картинка твоя! ;)
<img src='' />
<script type='text/javascript'>
var url='d:\\doc\\ksa.jpg';
document.querySelector('img').src=url;
</script>
|
Цитата:
|
laimas, лучше пример покажи как сделать.
|
Цитата:
|
Цитата:
<!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>
|
laimas, т.е. пример покажи...
|
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>
|
:-?
readAsDataURL |
Цитата:
|
| Часовой пояс GMT +3, время: 22:13. |