Autor Zpráva
Pomocník
Profil *
Dobrý den,

mám malou otázku.

Jak můžu ovlivnit - limitovat, kolik souborů může uživatel přenést pomocí drag'n drop do prohlížeče. Chci totiž aby mohl nahrát jen 1 soubor.

V mé ukázce totiž může přenést kolik chce a všechny se nahrají.

var data = new FormData();
 var dropZone = document.getElementById('dropZone');//kam se má soubor pustit

 dropZone.addEventListener('drop', handleDrop);//na pusteni souboru na elementu
 function handleDrop(e) {
   e.preventDefault();
   var file = e.dataTransfer.files;
   createFormData(file);
 }

 function createFormData(file) {    
   data.append('file', file[0]);
 }

function sendfile(data) {
 $.ajax({
  url: "/inc/ajax/nahravani.php",
  type: "POST",
  data: data,
  contentType: false,
  cache: false,
  processData: false,
  success: function(data) {
   alert(data);
  }
 });
}

sendfile(data);

Kód jsem zmenšil a odstranil nepotřebné části, které mám ve skriptu. (Odeslání textových polí...)
Str4wberry
Profil
V e.dataTransfer.files.length bude počet souborů, které uživatel přetáhl do stránky. Stačí tedy kontrolovat, že je roven jedné.

V případě drag & drop do obyčejného <input type="file"> to zpravidla řeší rovnou prohlížeč.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: