이미지 드래그 앤 드롭, 업로드-하나의 이미지 만 업로드 할 수 있습니까?

Asool

다음과 같은 이미지 업 로더를 만들고 있습니다. 이미지 업로드

이것이 내가 원하는 것입니다.

  1. 사용자가 업로드 할 수있는 총 이미지 수는 1 개입니다. 즉, 사용자가 다른 이미지를 업로드하려고하면 이전 이미지가 삭제됩니다.
  2. 사용자가 회색 영역에 이미지를 떨어 뜨리면 나타납니다.
  3. 사용자가 이미지 업로드를 클릭하면

나는 2와 3을 일할 수 있었다. 여기에서 codepen의 코드를 참조하십시오 : http://codepen.io/aseelaldallal/pen/QdwYgv/

내 문제는 다음과 같습니다.

  1. 사용자가 회색 상자에 이미지를 놓거나 이미지 업로드를 클릭한다고 가정 해 보겠습니다. 이미지가 나타납니다. 이제 첫 번째 이미지 위에 다른 이미지를 놓으려고한다고 가정 해 보겠습니다. 해야 할 일은 첫 번째 이미지가 삭제되고 새 이미지가 나타납니다. 불행히도 이것은 작동하지 않습니다.

  2. 사용자가 회색 상자에 이미지를 놓거나 이미지 업로드를 클릭한다고 가정 해 보겠습니다. 이미지가 나타납니다. 이제 사용자가 이미지 업로드를 클릭하고 다른 이미지를 선택한다고 가정합니다. 아무 반응이 없습니다. 원본 이미지는 여전히 있습니다.

내 코드는 다음과 같습니다 (또는 위의 코드 펜 링크를 클릭하십시오).

HTML :

<div id="imageBorder" class="container">

  <div id="imageContainer">

    <div id="dropbox">
      <i class="fa fa-picture-o" aria-hidden="true"></i>
      <p> Drop image here or click to upload</p>
    </div>

    <div id="preview" class="hidden">
    </div>

    <button id="fileSelect" class="btn btn-primary btn-block">Upload Image</button>
  </div>
</div>

JS

  $(document).ready(function() {

      var dropbox = document.getElementById("dropbox"),
          fileElem = document.getElementById("fileElem"),
          fileSelect = document.getElementById("fileSelect");

      fileSelect.addEventListener("click", function(e) {
          if (fileElem) {
              fileElem.click();
          }
      }, false);

      dropbox.addEventListener("dragenter", dragenter, false);
      dropbox.addEventListener("dragover", dragover, false);
      dropbox.addEventListener("drop", drop, false);
  });

function dragenter(e) {
    e.stopPropagation();
    e.preventDefault();
}

function dragover(e) {
    e.stopPropagation();
    e.preventDefault();
}

function drop(e) {
    e.stopPropagation();
    e.preventDefault();
    var dt = e.dataTransfer;
    var files = dt.files;
    handleFiles(files);
}

function handleFiles(files) {
    var file = files[0];
    var imageType = /^image\//;
    if (!imageType.test(file.type)) {
        alert("NOT AN IMAGE");
        return;
    }
    var img = document.createElement("img");
    img.classList.add("obj");
    img.file = file;
    img.height = $('#dropbox').height();
    img.width = $('#dropbox').width();
    $(dropbox).addClass('hidden');
    $(preview).removeClass('hidden');
    preview.appendChild(img);
    var reader = new FileReader();
    reader.onload = (function(aImg) {
        return function(e) {
            aImg.src = e.target.result;
        };
    })(img);
    reader.readAsDataURL(file)
}

CSS

#imageBorder {
  padding: 1rem;
  border-radius: 5px;
  box-sizing: border-box;
  height: 300px;
  width: 550px;
  border: 1px solid #ccc;
}

#imageContainer {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#dropbox {
  border-radius: 5px;
  text-align: center;
  color: gray;
  text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);
  background-color: #e7e7e7;
  height: 100%;
  margin-bottom: 2%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#dropbox i {
  font-size: 6.5rem;
  margin-bottom: 1rem;
}

#dropbox p {
  font-size: 2rem;
  margin-top: 1rem;
}

#preview {
  text-align: center;
  height: 100%;
  margin-bottom: 2%;
}

나는 추가하는 것처럼 간단한 것을 시도했다

$(preview).empty() before preview.appendChild(img)... Didn't work .

어떤 아이디어?

user5379872

이벤트 리스너가있는 보관함을 숨기고 있으므로 작동하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JQuery를 사용하여 이미지를 드래그 앤 드롭하고 업로드 할 수 있습니까?

분류에서Dev

ckeditor 이미지 업로드를 간단한 드래그 앤 드롭으로 만드는 방법

분류에서Dev

URL로만 GDrive에 이미지를 업로드 할 수 있습니까?

분류에서Dev

gridview 이미지 드래그 앤 드롭

분류에서Dev

이미지를 업로드 할 수 없지만 자산에 pdf를 업로드 할 수 있습니다.

분류에서Dev

QGraphicsView 드래그 앤 드롭이 로컬 이미지를 내 앱으로 드래그 할 때 작동하지 않습니다.

분류에서Dev

드래그 앤 드롭 이미지 업로드가 특정 브라우저에서 작동하지 않음

분류에서Dev

2 개의 'svg'원 안에 이미지 하나를 드래그 앤 드롭합니다 (앞뒤로)

분류에서Dev

HTTP GET을 사용하여 이미지를 업로드 할 수 있습니까?

분류에서Dev

업로드 된 이미지를 캔버스의 배경 이미지로 설정할 수 있습니까?

분류에서Dev

jquery를 사용하여 이미지 드래그 앤 드롭

분류에서Dev

드래그 앤 드롭이 작동하지 않습니까?

분류에서Dev

캔버스 이미지에 이미지 드래그 앤 드롭

분류에서Dev

업로드 할 때 codeigniter에서 내 이미지의 작업 경로를 어떻게 얻을 수 있습니까?

분류에서Dev

드래그 앤 드롭 드래그하는 동안 이미지 변경

분류에서Dev

방법 RecyclerView 드래그 앤 드롭을 만들 수 있습니다 (스왑이 항목의 위치를 버전)

분류에서Dev

직사각형으로 이미지 드래그 앤 드롭

분류에서Dev

jQuery 드래그 앤 드롭 div로 다른 이미지 변경

분류에서Dev

QTreeWidgetItem의 드래그 앤 드롭이 제대로 작동하지 않습니다.

분류에서Dev

Microsoft Windows에서 HTML5 드래그 앤 드롭을 사용할 때 드래그 앤 드롭으로 드래그 할 때 드래그 아이콘 (고스트 이미지)이 표시됩니다.

분류에서Dev

iOS의 서버에 이미지를 업로드 할 수 없습니까?

분류에서Dev

드래그 앤 드롭 작업 (Java에서)에 대한 소스 / 타겟이 동일한 지 확인할 수 있습니까?

분류에서Dev

내부 이미지로 div를 드래그 할 수있게 만드는 방법

분류에서Dev

Kubernetes를 사용하고 싶지만 이미지를 dockerhub에 업로드 할 수 없습니다.

분류에서Dev

yii에서 여러 이미지를 업로드 할 때 하나의 레코드 만 저장됩니다.

분류에서Dev

이미지에서 다른 이미지로 드래그 앤 드롭

분류에서Dev

Evince에서 Thunderbird로 드래그 앤 드롭 할 수 있습니까?

분류에서Dev

Evince에서 Thunderbird로 드래그 앤 드롭 할 수 있습니까?

분류에서Dev

드래그 앤 드롭 업로드-파일이 저장되지 않았습니다.

Related 관련 기사

  1. 1

    JQuery를 사용하여 이미지를 드래그 앤 드롭하고 업로드 할 수 있습니까?

  2. 2

    ckeditor 이미지 업로드를 간단한 드래그 앤 드롭으로 만드는 방법

  3. 3

    URL로만 GDrive에 이미지를 업로드 할 수 있습니까?

  4. 4

    gridview 이미지 드래그 앤 드롭

  5. 5

    이미지를 업로드 할 수 없지만 자산에 pdf를 업로드 할 수 있습니다.

  6. 6

    QGraphicsView 드래그 앤 드롭이 로컬 이미지를 내 앱으로 드래그 할 때 작동하지 않습니다.

  7. 7

    드래그 앤 드롭 이미지 업로드가 특정 브라우저에서 작동하지 않음

  8. 8

    2 개의 'svg'원 안에 이미지 하나를 드래그 앤 드롭합니다 (앞뒤로)

  9. 9

    HTTP GET을 사용하여 이미지를 업로드 할 수 있습니까?

  10. 10

    업로드 된 이미지를 캔버스의 배경 이미지로 설정할 수 있습니까?

  11. 11

    jquery를 사용하여 이미지 드래그 앤 드롭

  12. 12

    드래그 앤 드롭이 작동하지 않습니까?

  13. 13

    캔버스 이미지에 이미지 드래그 앤 드롭

  14. 14

    업로드 할 때 codeigniter에서 내 이미지의 작업 경로를 어떻게 얻을 수 있습니까?

  15. 15

    드래그 앤 드롭 드래그하는 동안 이미지 변경

  16. 16

    방법 RecyclerView 드래그 앤 드롭을 만들 수 있습니다 (스왑이 항목의 위치를 버전)

  17. 17

    직사각형으로 이미지 드래그 앤 드롭

  18. 18

    jQuery 드래그 앤 드롭 div로 다른 이미지 변경

  19. 19

    QTreeWidgetItem의 드래그 앤 드롭이 제대로 작동하지 않습니다.

  20. 20

    Microsoft Windows에서 HTML5 드래그 앤 드롭을 사용할 때 드래그 앤 드롭으로 드래그 할 때 드래그 아이콘 (고스트 이미지)이 표시됩니다.

  21. 21

    iOS의 서버에 이미지를 업로드 할 수 없습니까?

  22. 22

    드래그 앤 드롭 작업 (Java에서)에 대한 소스 / 타겟이 동일한 지 확인할 수 있습니까?

  23. 23

    내부 이미지로 div를 드래그 할 수있게 만드는 방법

  24. 24

    Kubernetes를 사용하고 싶지만 이미지를 dockerhub에 업로드 할 수 없습니다.

  25. 25

    yii에서 여러 이미지를 업로드 할 때 하나의 레코드 만 저장됩니다.

  26. 26

    이미지에서 다른 이미지로 드래그 앤 드롭

  27. 27

    Evince에서 Thunderbird로 드래그 앤 드롭 할 수 있습니까?

  28. 28

    Evince에서 Thunderbird로 드래그 앤 드롭 할 수 있습니까?

  29. 29

    드래그 앤 드롭 업로드-파일이 저장되지 않았습니다.

뜨겁다태그

보관