上传两次相同的图像文件-Javascript

Upload the same image file twice - Javascript

本文关键字:图像 文件 -Javascript 两次      更新时间:2023-09-26

我用Javascript编写的绘图应用程序中有一个图像上传器。我想允许用户在画布上放置多个相同的图像。然而,当我尝试上传一个已经在画布上的图像时,什么都不会发生,而且我的事件处理程序中的断点永远不会被击中。发生了什么事,我该如何解决?谢谢

这是我的图像处理程序的代码:

function handleImage(e) {
var reader = new FileReader();
reader.onload = function(event) {
  var img = new Image();
  img.onload = function() {
    img.className = 'drag';
    img.style.left = 0;
    img.style.top = 0;
    context.drawImage(img, parseInt(img.style.left, 10) , parseInt(img.style.top, 10));
    images.push(img);
  }
  img.src = event.target.result;
 }
 reader.readAsDataURL(e.target.files[0]);
 }; 

我确实同意Rene Pot再次使用相同的图像(重复按钮),但你仍然无法阻止用户再次插入/加载相同的图像。我不久前遇到过这个问题,并使用这段代码来检查图像是否已经缓存(如果缓存,则没有加载,因此onload也不会启动)。

var img = new Image();
img.src = event.target.result;
var insertImage = function() {
    img.className = 'drag';
    img.style.left = 0;
    img.style.top = 0;
    context.drawImage(img, parseInt(img.style.left, 10) , parseInt(img.style.top, 10));
    images.push(img);
  }
if(img.complete){
   img.onload = insertImage;
} else {
   insertImage();
}

希望能有所帮助。