eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwDrag and drop upload nie działa
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2014-08-22 23:13:24
    Temat: Drag and drop upload nie działa
    Od: Marek <p...@s...com>

    Witam,

    Nie wiem w czym rzecz. W HTML zrobiłem DIV'a reagującego na
    przeciągnięcie plików. JS przechwytuje zdarzenie upuszczenia plików na
    tym DIVie.

    Fragment kodu jest następujący:

    case "drop":
    files = ev.dataTransfer.files;
    fd=new FormData();
    for(i=0, f; f = files[i]; i++) fd.append("files[]",f);
    xhr.open("POST","mojSkrypt.php",true);
    xhr.send(fd);
    break;

    gdzie:
    xhr = new XMLHttpRequest();

    Gdy skrypt wykonuje się do serwera idą nagłówki (IE11):

    Żądanie POST /publisher/mojSkrypt.php HTTP/1.1
    Accept */*
    Content-Type multipart/form-data;
    boundary=---------------------------7de3db2f2b1910
    Referer https://xxxx.pl/yyy.php
    Accept-Language pl
    Accept-Encoding gzip, deflate
    User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0)
    like Gecko
    Host xxxx.pl
    Content-Length 1039469
    DNT 1
    Connection Keep-Alive
    Cache-Control no-cache
    Cookie rozne cookies

    Widać, że niby idą obrazki zawarte w files. Długość contentu jest
    odzwierciedleniem, że niby coś zgromadzono i zależy od ilości
    załączonych plików. Jednakże do skryptu PHP nic nie dociera w zmiennych
    POST.

    Natomiast gdy przed wysłaniem dodam:
    fd.append("files[]","aaa");
    fd.append("files[]","bbb");

    to po stronie serwera otrzymam, że files to array(2)= ["aaa","bbb]. Co
    ciekawe, zrobiłem podgląd w JS tego co chcę wysłać:

    reader = new FileReader();
    reader.addEventListener("load",this.addToPreview.bin
    d(this));
    reader.readAsDataURL(file);

    No i obrazki wyświetlają się po stronie HTML dzięki metodzie
    addToPreview(), która wstawia w HTML obiekt Image z src=ev.target.result

    Czyli od strony kodu JS wszystko ok. Czy istnieją jakieś dodatkowe
    wymogi od strony kodu HTML? Czy musi tam być jakiś formularz
    bezwzględnie aby kod ożył i przesłał dane z plików? Czy jakieś specjalne
    nazwy pól mają tam też być? A może to wina IE11, w którym coś nie działa?


    --
    Pozdrawiam
    Marek


  • 2. Data: 2014-08-23 15:33:34
    Temat: Re: Drag and drop upload nie działa
    Od: Marek <p...@s...com>

    Wszystko już działa jak należy. Poszło o to, że debugger w IE11 ukrywa
    dane POST w przypadku gdy wysyłamy FormData jako argument xhr.send().
    Zasugerowałem się tym i błędnie uznałem, że nie wychodzą żadne dane.

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: