【Angular】드래그&드롭으로 화상을 읽어들여 표시한다
6718 단어 Angular
이번에는 드래그 앤 드롭으로 영역으로 드래그하여 가져온 이미지를 불러와 표시하는 샘플을 만들어 갑니다.
미기록 클래스는 부트스트랩을 참조하십시오.
html
<div class="container-md text-center">
<div
class="dragarea w-100 border bg-light d-flex align-items-center"
(dragover)="dragOver($event)" (drop)="drop($event)"
>
<span class="mx-auto">ドラッグエリア</span>
</div>
<input type="file" id="dragareaInput" style="display:none" (change)="onChangeDragAreaInput($event)">
<label class="mt-3 btn btn-secondary" for="dragareaInput">参照</label>
<div class="row">
<img *ngFor="let i of img" [src]="i" class="col-6">
</div>
</div>
css
.dragarea {
height: 300px;
}
typescript
onChangeDragAreaInput(event){
// ファイルの情報はevent.target.filesにある
let reader = new FileReader();
const file = event.target.files[0];
reader.readAsDataURL(file);
reader.onload = () => {
this.img.push(reader.result);
};
}
dragOver(event:DragEvent){
// ブラウザで画像を開かないようにする
event.preventDefault();
}
drop(event:DragEvent){
// ブラウザで画像を開かないようにする
event.preventDefault();
const file = event.dataTransfer.files;
const fileList = Object.entries(file).map(f=>f[1]);
console.log(fileList);
fileList.forEach(f=>{
let reader = new FileReader();
reader.readAsDataURL(f);
reader.onload = () => {
this.img.push(reader.result);
};
});
}
preventDefault를 작동시키지 않으면 브라우저에서 이미지를 열어 버린다.
Reference
이 문제에 관하여(【Angular】드래그&드롭으로 화상을 읽어들여 표시한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/frtklog/items/6d69d72938f7bcf15b81텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)