JS实现页面粘贴图片直接Ajax上传实例页面
回到相关文章 »效果:
Tips: 截图或者任意网页“右键-复制图片”,然后粘贴
//zxx: 为省去大家找图烦恼,特意提供了图片素材
代码:
HTML代码:
<div id="preview"></div> <p id="log"></p>
JS代码:
document.addEventListener('paste', function (event) { var items = (event.clipboardData || window.clipboardData).items; var file = null; if (items && items.length) { // 搜索剪切板items for (var i = 0; i < items.length; i++) { if (items[i].type.indexOf('image') !== -1) { file = items[i].getAsFile(); break; } } } else { log.innerHTML = '<span style="color:red;">当前浏览器不支持</span>'; return; } if (!file) { log.innerHTML = '<span style="color:red;">粘贴内容非图片</span>'; return; } // 此时file就是我们的剪切板中的图片对象 // 如果需要预览,可以执行下面代码 var reader = new FileReader() reader.onload = function(event) { preview.innerHTML = '<img src="' + event.target.result + '" class="upload-image">'; } reader.readAsDataURL(file); // 如果不需要预览,上面这段可以忽略 // 这里是上传 var xhr = new XMLHttpRequest(); // 上传进度 if (xhr.upload) { xhr.upload.addEventListener('progress', function (event) { log.innerHTML = '正在上传,进度:' + Math.round(100 * event.loaded / event.total) / 100 + '%'; }, false); } // 上传结束 xhr.onload = function () { var responseText = xhr.responseText; log.innerHTML = '上传成功,地址是:' + responseText; }; xhr.onerror = function () { log.innerHTML = '<span style="color:red;">网络异常,上传失败</span>'; }; xhr.open('POST', './upload.php', true); xhr.setRequestHeader('FILENAME', encodeURIComponent(file.name)); xhr.send(file); });