9

I'm trying to add an image paste function to my web application, using the standard routine:

$('textarea').on('paste', function (ev) {
    var clipboardData = ev.originalEvent.clipboardData;

    $.each(clipboardData.items, function (i, item) {
        if (item.type.indexOf("image") !== -1) {
            var reader = new FileReader();

            reader.readAsDataURL(item.getAsFile());
            reader.addEventListener('loadend', ...);
            ...
        }
    });
});

The full sample can be found here: http://jsfiddle.net/t8t2zj6k/

It works correctly when I copy & paste an image from an image viewer software, but when I'm trying to do the same thing using a file browser (e.g. Finder on Mac or Nautilus on Linux) as a result I get only a text string with the file path or even an image with file type icon instead of an original file.

Is there any way to handle pastes from a file browser properly?

NikitaBaksalyar
  • 2,414
  • 1
  • 24
  • 27
  • Possibly this could help you? http://stackoverflow.com/questions/6333814/how-does-the-paste-image-from-clipboard-functionality-work-in-gmail-and-google-c – lemieuxster Apr 18 '15 at 22:34
  • @lemieuxster, thanks, but unfortunately I'm already using the exact same solution provided in the accepted answer. My case is a bit different - while the basic paste function is working well, there's an issue with pasting from Finder. – NikitaBaksalyar Apr 18 '15 at 22:50
  • Seems to maybe be an issue with Chrome? I don't see anything in Safari or Firefox. https://code.google.com/p/chromium/issues/detail?id=361980 – lemieuxster Apr 18 '15 at 23:19
  • @lemieuxster, thank you! The bug report totally explains this weird behavior. Perhaps you should add it as an answer to the question so that I can accept it? – NikitaBaksalyar Apr 18 '15 at 23:37

2 Answers2

3

Seems to maybe be an issue with Chrome? I don't see anything in Safari or Firefox. http://code.google.com/p/chromium/issues/detail?id=361980

NikitaBaksalyar
  • 2,414
  • 1
  • 24
  • 27
lemieuxster
  • 1,081
  • 7
  • 14
1

Maybe you would like to paste image as data:

Go look at HTML5 paste image to page

michelek
  • 2,380
  • 1
  • 13
  • 15