国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php實現粘貼截圖并完成上傳功能

2024-05-04 23:35:22
字體:
來源:轉載
供稿:網友

知乎回答問題編輯框用 Ctrl+V 粘貼圖片是如何實現的?剛發現知乎編輯器有這么強的功能,在研究的過程中發現原來segmentfault也實現了這么強大的功能,下面結合2者來看看我們如何實現。

今天發現segmentfault的評論留言里面可以粘貼上傳圖片,于是研究了下怎么實現的!

原理很簡單其實就是監控粘貼事件,然后檢測是否粘貼的東西里面有圖片,有的話直接觸發ajax上傳

代碼可以直接運行,有興趣你們可以試試

 

 
  1. <?php 
  2. header("Access-Control-Allow-Origin:*"); 
  3. $url = 'http://'.$_SERVER['HTTP_HOST']; 
  4. $file = (isset($_POST["file"])) ? $_POST["file"] : ''
  5. if($file
  6. $data = base64_decode(str_replace('data:image/png;base64,'''$file)); //截圖得到的只能是png格式圖片,所以只要處理png就行了 
  7. $name = md5(time()) . '.png'// 這里把文件名做了md5處理 
  8. file_put_contents($name$data); 
  9. echo"$url/$name"
  10. die
  11. ?> 
  12.  
  13.  
  14. <div id="box"style="width:400px;height:400px;border:1px solid;"contenteditable> 
  15. </div> 
  16. <input type="hidden"name="img"value=""id="img_puth"/> 
  17.  
  18. <script> 
  19. //查找box元素,檢測當粘貼時候, 
  20. document.querySelector('#box').addEventListener('paste'function(e) { 
  21.  
  22. //判斷是否是粘貼圖片 
  23. if (e.clipboardData && e.clipboardData.items[0].type.indexOf('image') > -1)  
  24. var that = this, 
  25. reader = new FileReader(); 
  26. file = e.clipboardData.items[0].getAsFile(); 
  27.  
  28. //ajax上傳圖片 
  29. reader.onload = function(e)  
  30. var xhr = new XMLHttpRequest(), 
  31. fd = new FormData(); 
  32.  
  33. xhr.open('POST''', true); 
  34. xhr.onload = function ()  
  35. var img = new Image(); 
  36. img.src = xhr.responseText; 
  37.  
  38. // that.innerHTML = '<img src="'+img.src+'"alt=""/>'; 
  39. document.getElementById("img_puth").value = img.src; 
  40.  
  41. // this.result得到圖片的base64 (可以用作即時顯示) 
  42. fd.append('file', this.result);  
  43. that.innerHTML = '<img src="'+this.result+'"alt=""/>'
  44. xhr.send(fd); 
  45. reader.readAsDataURL(file); 
  46. }, false); 
  47. </script> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 军事| 广南县| 平安县| 丰镇市| 丽江市| 罗定市| 湟中县| 汉中市| 武鸣县| 松阳县| 平利县| 尉犁县| 阳春市| 凤山市| 安岳县| 竹山县| 淮安市| 衡东县| 克拉玛依市| 吉木萨尔县| 北安市| 布尔津县| 昆明市| 永泰县| 资阳市| 安仁县| 铅山县| 陆良县| 十堰市| 丰原市| 南宁市| 宜都市| 牙克石市| 通城县| 淮滨县| 分宜县| 惠安县| 崇仁县| 陕西省| 闻喜县| 高唐县|