Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как получить изображение из буфера обмена?
Форумы портала PHP.SU » » Вопросы новичков » Как получить изображение из буфера обмена?

Страниц (1): [1]
 

1. Ник Бондарчук - 10 Мая, 2017 - 14:11:17 - перейти к сообщению
Здравствуйте, как сделать так чтобы при нажатии CTRL + V (Вставить) высвечивалась форма с изображением из буфера обмена, а потом отсылалась?
Главное мне надо получить саму картинку и узнать код для этого.
Буду благодарен если поможете Радость
2. caballero - 10 Мая, 2017 - 15:23:27 - перейти к сообщению
где высвечивалась? В воздухе?
всегда есть какой то элемент куда вставляется данные с клипборда
3. armancho7777777 - 10 Мая, 2017 - 16:29:34 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. <style>
  2.     .previews img { vertical-align: top; max-width: 200px }
  3.     .previews { margin-top: 20px }
  4. </style>
  5.  
  6. <form id="my-form" action="#">
  7.     <input id="image-field" name="images[]" size="30" readonly
  8.            placeholder="Paste the image from clipboard...">
  9.     <button>send</button>
  10.     <div id="previews" class="previews"></div>
  11. </form>
  12. <pre id="response"></pre>

CODE (javascript):
скопировать код в буфер обмена
  1. (function(doc){
  2.  
  3.     var form      = doc.querySelector('#my-form'),
  4.         field     = form.querySelector('#image-field'),
  5.         previews  = form.querySelector('#previews'),
  6.         respElem  = doc.querySelector('#response'),
  7.         fieldName = field.name,
  8.         files     = [],
  9.  
  10.         previewClear = function(){
  11.             each(previews.children, function(child){
  12.                 previews.removeChild(child);
  13.             });
  14.         },
  15.  
  16.         each = function(elems, callBack){
  17.             return [].forEach.call(elems, callBack);
  18.         };
  19.  
  20.     field.removeAttribute('name');
  21.     field.autocomplete = 'off';
  22.  
  23.     field.addEventListener('paste', function(e){
  24.  
  25.         respElem.innerHTML = '';
  26.         previewClear();
  27.         files = [];
  28.  
  29.         each(e.clipboardData.files, function(file){
  30.             if(!/^image\/.+$/.test(file.type)) return;
  31.             var preview = doc.createElement('img');
  32.             preview.src = URL.createObjectURL(file);
  33.             previews.appendChild(preview);
  34.             field.value = file.name;
  35.             files.push(file);
  36.         });
  37.  
  38.     });
  39.  
  40.     form.addEventListener('reset', function(){
  41.         previewClear();
  42.         files = [];
  43.     });
  44.  
  45.     form.addEventListener('submit', function(e){
  46.  
  47.         e.preventDefault();
  48.  
  49.         var formData = new FormData(form),
  50.             xhr = new XMLHttpRequest();
  51.  
  52.         xhr.addEventListener('load', function(e){
  53.             respElem.innerHTML = e.target.response;
  54.             form.reset();
  55.         });
  56.  
  57.         each(files, function(file){
  58.             formData.append(fieldName, file);
  59.         });
  60.  
  61.         xhr.open('POST', form.action, true);
  62.         xhr.send(formData);
  63.  
  64.     });
  65.  
  66. })(document);

 

Powered by ExBB FM 1.0 RC1