2015-08-03 22 views
8

Posso presumere che i dati di immagine degli appunti di Mac OS X siano png?Come determinare il tipo MIME di Appunti di immagini copiate incollate?

Quando si tenta di rilevare i dati degli Appunti da MIME, restituisce application/octet.

Questo ha l'effetto indesiderato di far scaricare ad ogni browser l'immagine anziché visualizzarla.

Se imposto il tipo di contenuto a image/png, tutto sembra a posto, ma mi chiedevo se per me non esistesse un modo per non dover fare l'ipotesi?

$log.debug(e.originalEvent.clipboardData); 
for (var i = 0; i < e.originalEvent.clipboardData.items.length; i++) { 
var item = e.originalEvent.clipboardData.items[i]; 
$log.info("Item type: " ,item); 
if (item.type.indexOf("image") != -1) { 
    $scope.token.images = []; 
    $log.debug(item.getAsFile(), {}); 
... 

Io uso https://github.com/broofa/node-mime per rilevare i tipi MIME.

risposta

1

Almeno in teoria, no, non lo si può assumere.

Ecco cosa dice Apple: "Per ottenere un elenco di tipi attualmente disponibili negli Appunti, è possibile utilizzare la proprietà types dell'oggetto ClipboardData. " Webkit DOM Programming Topics

At least according to w3c le opzioni sono:

immagine
  • /png
  • image/jpg
  • immagine
  • /jpeg
  • immagine
  • /gif
  • image/svg + xml

modifica:

La ragione per cui il MIME-detect rendimenti application/octet è che la biblioteca si sta utilizzando le cadute di nuovo a che quando non conosce il tipo as you can see in this line of the test.js file:

assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); 

This answer spiega più in dettaglio come affrontare questo " dati binari arbitrari. "