首頁 php教程 php手册 利用ctrl+v实现粘贴截图完成上传功能

利用ctrl+v实现粘贴截图完成上传功能

Jun 06, 2016 pm 07:38 PM
上傳 使用 功能 完成 實現 截圖 貼上

今天发现segmentfault的评论留言里面可以粘贴上传图片,于是研究了下怎么实现的! 原理很简单其实就是监控粘贴事件,然后检测是否粘贴的东西里面有图片,有的话直接触发ajax上传 更多技术文章请访问:http://www.dahuzhi.com 代码可以直接运行,有兴趣你们可以试试

今天发现segmentfault的评论留言里面可以粘贴上传图片,于是研究了下怎么实现的!
原理很简单其实就是监控粘贴事件,然后检测是否粘贴的东西里面有图片,有的话直接触发ajax上传

更多技术文章请访问: http://www.dahuzhi.com

代码可以直接运行,有兴趣你们可以试试 PHP JavaScript Localisation
<?php
header("Access-Control-Allow-Origin:*");
$url  = 'http://'.$_SERVER['HTTP_HOST'];
$file = (isset($_POST["file"])) ? $_POST["file"] : '';
if($file)
{
	$data = base64_decode(str_replace('data:image/png;base64,', '', $file));  //截图得到的只能是png格式图片,所以只要处理png就行了
	$name = md5(time()) . '.png';  // 这里把文件名做了md5处理
	file_put_contents($name, $data);
	echo "$url/$name";
	die;
}
?>


<div id="box" style="width:400px;height:400px;border:1px solid;" contenteditable>
</div>
<input type="hidden" name="img" value="" id="img_puth"/>

<script>
	//查找box元素,检测当粘贴时候,
	document.querySelector('#box').addEventListener('paste', function(e) {

		//判断是否是粘贴图片
	    if (e.clipboardData && e.clipboardData.items[0].type.indexOf('image') > -1) 
	    {
			var that 	 = this,
				reader   = new FileReader();
				file     = e.clipboardData.items[0].getAsFile();

			//ajax上传图片
	        reader.onload = function(e) 
	        {
	            var xhr = new XMLHttpRequest(),
	                fd  = new FormData();

	            xhr.open('POST', '', true);
	            xhr.onload = function () 
	            {
	                var img = new Image();
	                img.src = xhr.responseText;

	       			// that.innerHTML = '<img src="/static/imghw/default1.png"  data-src="'+img.src+'"  class="lazy"+img.src+'" alt=""/>';
	                document.getElementById("img_puth").value = img.src;
	            }

	            // this.result得到图片的base64 (可以用作即时显示)
	            fd.append('file', this.result); 
	            that.innerHTML = '<img src="/static/imghw/default1.png"  data-src="'+this.result+'"  class="lazy"+this.result+'" alt=""/>';
	            xhr.send(fd);
	        }
	        reader.readAsDataURL(file);
	    }
	}, false);
</script>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vivox100s和x100區別:效能比較及功能解析 vivox100s和x100區別:效能比較及功能解析 Mar 23, 2024 pm 10:27 PM

vivox100s和x100手機都是vivo手機產品線中的代表機型,它們分別代表了vivo在不同時間段內的高端技術水平,因此這兩款手機在設計、性能和功能上均有一定區別。本文將從效能比較和功能解析兩個面向對這兩款手機進行詳細比較,幫助消費者更好地選擇適合自己的手機。首先,我們來看vivox100s和x100在效能上的比較。 vivox100s搭載了最新的

win10電腦截圖時出現黑畫面怎麼辦_win10電腦截圖時出現黑畫面的處理方法 win10電腦截圖時出現黑畫面怎麼辦_win10電腦截圖時出現黑畫面的處理方法 Mar 27, 2024 pm 01:01 PM

1.按下win鍵+r鍵,輸入regedit,點選確定。 2.在開啟的登錄編輯窗口,依序展開:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlGraphicsDriversDCI,選取右邊的Timeout雙擊。 3.然後把【數值資料】中的7改為0,確定退出即可。

iPhone螢幕截圖不起作用:如何修復 iPhone螢幕截圖不起作用:如何修復 May 03, 2024 pm 09:16 PM

螢幕截圖功能在您的iPhone上不起作用嗎?截圖非常簡單,因為您只需同時按住「提高音量」按鈕和「電源」按鈕即可抓取手機螢幕。但是,還有其他方法可以在設備上捕獲幀。修復1–使用輔助觸控使用輔助觸控功能截取螢幕截圖。步驟1–轉到您的手機設定。步驟2–接下來,點選以開啟「輔助功能」設定。步驟3–開啟「觸摸」設定。步驟4–接下來,開啟「輔助觸控」設定。步驟5–打開手機上的「輔助觸控」。步驟6–打開“自訂頂級選單”以存取它。步驟7–現在,您只需將這些功能中的任何一個連結到螢幕擷取即可。因此,點擊那裡的首

Win8如何利用快捷鍵進行截圖? Win8如何利用快捷鍵進行截圖? Mar 28, 2024 am 08:33 AM

Win8如何利用快捷鍵進行截圖?在日常使用電腦的過程中,我們經常需要將螢幕上的內容截圖。對於Windows8系統的使用者來說,透過快捷鍵截圖是一個方便且有效率的操作方式。在這篇文章中,我們將介紹Windows8系統中幾種常用的快捷鍵進行截圖的方法,幫助大家更快速地進行螢幕截圖操作。第一種方法是使用「Win鍵+PrintScreen鍵」組合鍵來進行全

華為手機如何實現雙微信登入? 華為手機如何實現雙微信登入? Mar 24, 2024 am 11:27 AM

華為手機如何實現雙微信登入?隨著社群媒體的興起,微信已成為人們日常生活中不可或缺的溝通工具之一。然而,許多人可能會遇到一個問題:在同一部手機上同時登入多個微信帳號。對於華為手機用戶來說,實現雙微信登入並不困難,本文將介紹華為手機如何實現雙微信登入的方法。首先,華為手機自帶的EMUI系統提供了一個很方便的功能-應用程式雙開。透過應用程式雙開功能,用戶可以在手機上同

酷狗上傳自己的音樂的簡單步驟 酷狗上傳自己的音樂的簡單步驟 Mar 25, 2024 pm 10:56 PM

1.打開酷狗音樂,點選個人頭像。 2、點選右上角設定的圖示。 3.點選【上傳音樂作品】。 4.點選【上傳作品】。 5.選擇歌曲,然後點選【下一步】。 6.最後點選【上傳】即可。

自媒體到底是什麼?它的主要特點和功能有哪些? 自媒體到底是什麼?它的主要特點和功能有哪些? Mar 21, 2024 pm 08:21 PM

隨著網路的快速發展,自媒體這個概念已經深入人心。那麼,自媒體到底是什麼呢?它有哪些主要特點和功能呢?接下來,我們將一一探討這些問題。一、自媒體到底是什麼?自媒體,顧名思義,就是自己就是媒體。它是指透過網路平台,個人或團隊可以自主創建、編輯、發布和傳播內容的資訊載體。不同於傳統媒體,如報紙、電視、電台等,自媒體具有更強的互動性和個人化,讓每個人都能成為訊息的生產者和傳播者。二、自媒體的主要特色和功能有哪些? 1.低門檻:自媒體的崛起降低了進入媒體產業的門檻,不再需要繁瑣的設備和專業的團隊,一部手

PHP程式設計指南:實作斐波那契數列的方法 PHP程式設計指南:實作斐波那契數列的方法 Mar 20, 2024 pm 04:54 PM

程式語言PHP是一種用於Web開發的強大工具,能夠支援多種不同的程式設計邏輯和演算法。其中,實作斐波那契數列是一個常見且經典的程式設計問題。在這篇文章中,將介紹如何使用PHP程式語言來實作斐波那契數列的方法,並附上具體的程式碼範例。斐波那契數列是一個數學上的序列,其定義如下:數列的第一個和第二個元素為1,從第三個元素開始,每個元素的值等於前兩個元素的和。數列的前幾元

See all articles