Kod XML/HTML
Salin kandungan ke papan keratan
- <div id="kotak" gaya="lebar: 800px; tinggi: 400px; sempadan: 1px pepejal;" contenteditable="benar">div>
-
<skrip taip="teks/ javascript" src="require.js"> skrip>
-
<skrip>
- memerlukan(['Muat NaikImej'], fungsi (Muat NaikImej) {
- Muat NaikImej baharu("kotak", "UploadHandler.ashx").muat naik(fungsi (xhr) {//上传完成后的回调
-
var img = baharu Imej();
-
img.src = xhr.responseText;
- this.appendChild(img);
- });
- })
-
skrip>
三.浏览器支持
当前版本只支持以下,浏览器支持
当前版本只支持以下,浏览器,后期可能会。 🎜>•IE11
•Chrome
•FireFox
•Safari(未测式,理论应该支持) 四.原理及源码
大玜>头玜>
1.🎜> 用 H5 File API (Filereader) 获取文件的 Base64 代码, 并构建 Formdata 异步上传。 2.拖拽上传
处理目标容器(id)的drop事件,读取e.dataTransfer.files(H5 FileList)中的是年据的是平据FormData异步上传。
以下是初版本代码,比较简单。不再赘述。
部份核心代码
Kod XML/HTML复制内容到剪贴板
- fungsi Muat NaikImej(id, url, kunci)
- {
-
elemen ini = dokumen.getElementById(id);
-
url.ini = url; //Laluan untuk pemprosesan imej bahagian belakang
-
this.imgKey = kunci || "PasteAreaImgKey"; //Nama yang disebut pada bahagian belakang
} -
-
UploadImage.prototype.paste = fungsi (panggilan balik, formData)
{ -
var -
bahawa = ini
this.element.addEventListener('paste', fungsi (e) {//Kendalikan acara tampal bekas sasaran (id) -
jika (e.clipboardData && e.clipboardData.item[0].type.indexOf('image') -
> -1) {
var -
bahawa = ini,
-
pembaca = baharu FileReader();
fail-
= e.clipboardData.items[0].getAsFile();//Baca data dalam e.clipboardData: Blob object
reader.onload-
= fungsi (e) { //Selepas bacaan pembaca selesai, xhr dimuat naik
var
xhr-
= baharu XMLHttpRequest(),
fd-
= formData || (New FormData());;
xhr.open('POST', that.url, true);
xhr.onload- =
fungsi-
() {
panggilan balik.panggilan(itu, xhr);
}
fd.append(thatthat.imgKey, this.result); // this.result mendapat asas64 imej -
xhr.send(fd); -
} -
reader.readAsDataURL(file);//Dapatkan pengekodan base64 -
} -
}, palsu); -
} -
-