2013-07-11 142 views
0

我的用戶需要屏幕截圖他們的錯誤信息扔我的網站。他們應該直接從剪貼板粘貼到我的網站上,而不是轉換jpeg。最好的瀏覽器是Firefox。我嘗試使用ZeroClipBoard,但它適用於文字而不是圖像。讚賞如果任何人可以建議和分享任何鏈接的參考。打印屏幕到網站

+0

這裏是一個網站,捕捉你的截圖:http://snag.gy/不知道他們是如何實現這一點。 – Gimmy

+0

@Gimmy Snaggy似乎使用Java小程序。 – Dai

+0

我不認爲有些人認爲這個問題重複瞭解問題。我發現一個更接近的問題,不完全一樣,但涵蓋了材料 - http://stackoverflow.com/questions/6333814/how-does-the-paste-image-from-clipboard-functionality-work-in-gmail-and -google-c – bryjohns

回答

2

簡單的答案:你不能。沒有Web標準的方式來從剪貼板讀取二進制數據,我也不相信Flash或Silverlight會這樣做(Flash 可以公開剪貼板中的位圖數據,但僅在AIR下,即不在瀏覽器上下文中)。

您可以編寫一個小型桌面實用程序,供用戶下載和運行,它們會截圖並上傳給用戶,但如果沒有這些用戶將不得不將圖像粘貼到畫圖,保存到磁盤並上傳與<input type="file">

+0

你的意思是小桌面實用程序。請指教。 –

+0

可以這樣做,看看http://snag.gy。 – bryjohns

+2

FWIW,Snaggy在我的機器上不起作用。 – Dai

0

我不知道使用Mozilla的兼容性,但你應該看看onpaste事件

https://developer.mozilla.org/en-US/docs/Web/API/element.onpaste

和event.clipboarddata

http://www.w3.org/TR/clipboard-apis/

交叉兼容性可能是可能將成爲一個問題。

你可以看一下源爲WordPress插件圖片電梯http://wordpress.org/plugins/image-elevator/

看看管理員/租入資產價值/ JS /圖像電梯global.js的想法。

看着插件後,我得到了下面的代碼工作。它會重新加載頁面圖片與你粘貼的任何東西。適用於Chrome而不是Firefox。

<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
<script> 
document.onpaste = function (e) { 
    var items = e.clipboardData.items; 
    for (var i = 0; i < items.length; ++i) { 
     // uploads image on a server 
     var img = items[i].getAsFile(); 

     var oData = new FormData(); 
     oData.append('file', img); 

     var req = new XMLHttpRequest(); 
     req.open("POST", "test-pastup.php"); 

     req.onreadystatechange = function() { 
      setTimeout(function() { 
       var img = $('img').clone(); 
       $('img').remove(); 
       $('body').prepend(img); 
      }, 100); 
     } 

     req.send(oData); 

     return; 
    } 
} 
</script> 
</head> 
<body> 
<img src="aaa.png" /> 
<input/> 
</body> 
</html> 

服務器端 - 測試pastup.php

<?php 
    $source = $_FILES['file']['tmp_name']; 
    move_uploaded_file($source, 'aaa.png'); 
?> 
+0

看看這個規範,它看起來像是可能的,因爲二進制數據就像圖像一樣暴露爲一個通用文件(就好像一個文件被拖放到網頁上一樣),但是我不知道任何支持的瀏覽器這個功能。 – Dai

+0

我在firefox中試過這個,但它沒有奏效。請指教。謝謝 –

+0

它不適用於Firefox - 只是webkit。我正在尋找解決方法。 Imagur.com能夠用firefox做到這一點。 – bryjohns