Вы можете сделать некоторые работы стилизовать, но вот общая идея:
Допустим, у вас есть какой-то очень простой разметки, как это:
<input type='file' />
<img id="myImg" src="#" alt="your image" />
- Вы хотите подключиться к
change
событие <input type='file' />
.
- После этого проверьте, были ли какие-либо файлы выбраны, и если да, то существует ли первый файл в массиве.
- Затем создайте новый объект
FileReader
. Мы расскажем об этом объекте две вещи:
- Когда он вызывает событие
onload
, он должен вызывать функцию imageIsLoaded
.
- Затем возьмите данные из первого файла и прочитать его.
- Когда это завершает это поднимет событие в шаге один
В JavaScript , это будет выглядеть так:
$(":file").change(function() {
if (this.files && this.files[0]) {
var reader = new FileReader();
reader.onload = imageIsLoaded;
reader.readAsDataURL(this.files[0]);
}
});
function imageIsLoaded(e) {
$('#myImg').attr('src', e.target.result);
};
В этом примере, когда изображение загружено, мы заменим исходный атрибут img, который мы имеем в разметке, в функции imageIsLoaded
.
Здесь есть много отдельных вопросов. Я попытался бы разобрать каждый, попытаться решить проблему, и если вы застрянете, задайте последующие вопросы, включая конкретный блок кода, над которым вы работаете, что вы ожидаете от него, и что не работает Это. – KyleMit