javascript - 一般本文編輯器里面的粘貼圖片的實(shí)現(xiàn)步驟是怎樣的?
問(wèn)題描述
我們公司需要用到一款編輯器,里面需要粘貼圖片并上傳到服務(wù)器端;想了解一下怎么實(shí)現(xiàn)截圖粘貼,然后上傳服務(wù)器的方法,求大神解惑!!
問(wèn)題解答
回答1:在input或textarea監(jiān)聽(tīng)paste事件。
獲取剪貼板的圖片文件;
利用FileReader 讀取文件dataurl 用于預(yù)覽,如果需要的話(huà)。
調(diào)用上傳接口,直接上傳即可。
element.on(’paste’, function (event) { var e = event.originalEvent, clipboardData = e.clipboardData; if (clipboardData && clipboardData.items[0].type.indexOf(’image’) > -1) {var file = clipboardData.items[0].getAsFile();//讀取e.clipboardData中的數(shù)據(jù):Blob對(duì)象if(!checkFileSize(file.size)){ Utils.safeApply(function () {$toaster.warning('只允許上傳小于5MB的圖片'); }); return;}var reader = new FileReader();reader.onload = function (e) { Utils.safeApply(function () {$rootScope.sendPicUrl = e.target.result;$rootScope.picFile = file;Chat.showSendPic2Dialog();//這里可以調(diào)用上傳接口,直接上傳。我這里是業(yè)務(wù)關(guān)系,需要通過(guò)對(duì)話(huà)框來(lái)預(yù)覽拷貝的圖片,然后在對(duì)話(huà)框內(nèi)再上傳。 }, $rootScope);};reader.readAsDataURL(file); }});
相關(guān)文章:
1. 數(shù)組按鍵值封裝!2. docker不顯示端口映射呢?3. java - 阿里的開(kāi)發(fā)手冊(cè)中為什么禁用map來(lái)作為查詢(xún)的接受類(lèi)?4. java - 無(wú)法執(zhí)行該操作,因?yàn)殒溄臃?wù)器 "***" 的 OLE DB 訪(fǎng)問(wèn)接口 "SQLNCLI" 無(wú)法啟動(dòng)分布式事務(wù)。解決方法?5. 如何用Java向kafka發(fā)送json數(shù)據(jù)6. javascript - 使用vue官方腳手架進(jìn)行單元測(cè)試,如何覆蓋到watch里的變量?7. javascript - 為什么創(chuàng)建多行多列的表格最后只有一行內(nèi)有表格8. javascript - ES6規(guī)范下 repeat 函數(shù)報(bào)錯(cuò) Invalid count value9. clone - git sourceTree克隆倉(cāng)庫(kù)時(shí),都不停彈出Password Required彈窗,即時(shí)輸入正確的git賬號(hào)密碼還是彈出10. html5 - 使用echarts中的圖表 一個(gè)頁(yè)面導(dǎo)入了好幾個(gè)js圖表 實(shí)現(xiàn)echarts圖表隨著瀏覽器窗口變化而變化時(shí)出現(xiàn)了問(wèn)題
