HTML input type = file, получить изображение перед отправкой формы
Я создаю базовую социальную сеть, и при регистрации пользователь загружает отображаемое изображение.
В основном я хотел отобразить изображение, например, предварительный просмотр на той же странице, что и форма, сразу после их выбора и перед отправкой формы.
Возможно ли это?
Ответы
Ответ 1
Вот полный пример предварительного просмотра изображения до его загрузки.
HTML:
<html>
<head>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
<script src="http://goo.gl/r57ze"></script>
<![endif]-->
</head>
<body>
<input type='file' onchange="readURL(this);" />
<img id="blah" src="#" alt="your image" />
</body>
</html>
JavaScript:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#blah')
.attr('src', e.target.result)
.width(150)
.height(200);
};
reader.readAsDataURL(input.files[0]);
}
}
Ответ 2
это можно сделать очень легко с HTML 5, см. ссылку http://www.html5rocks.com/en/tutorials/file/dndfiles/
Ответ 3
Я нашел этот более простой, но мощный учебник, в котором используется объект fileReader
. Он просто создает элемент img и, используя объект fileReader, назначает свой атрибут источника как значение ввода формы
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">
Ответ 4
хороший файл с открытым исходным кодом
http://blueimp.github.com/jQuery-File-Upload/
Ответ 5
Я чувствую, что у нас было связанное обсуждение ранее: Как загрузить изображение предварительного просмотра перед загрузкой через JavaScript
Ответ 6
Изображение не может отображаться до тех пор, пока оно не будет использоваться с любого сервера. поэтому вам нужно загрузить изображение на свой сервер, чтобы показать его предварительный просмотр.
Ответ 7
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">