Mam skonfigurowany skrypt przesyłania plików typu przeciągnij i upuść w JS (AJAX POST) i mam problemy z filtrowaniem folderów w Safari - wersja 5.0.3 (6533 194).HTML5 Przeciąganie i upuszczanie - wykrywanie folderów w Safari (FileList, File)
Ilekroć upuszczam wiele plików/folderów do przeglądarki, Chrome odfiltruje foldery, a Firefox zwróci 0 za .size
, więc jest to banalne, aby chronić się przed tymi przypadkami. Safari jednak zwróci 68 bajtowy plik (rozmiar folderu).
Czy istnieje sposób sprawdzenia, czy ta File
(pozycja w FileList
) jest folderem? nie wydaje się znaleźć coś w File/Blob API że testy dla tej choroby (bez sensu .type
, ponieważ nic nie zwraca nieznanych plików, jak i folderów ...)
Nieco więcej informacji:
Zasadniczo to, że żądanie AJAX ma puste ciało. Ja przesyłając z FormData
:
var file = ...; // the dropped file
var formData = new FormData();
formData.append("file", file);
var xhr = new XMLHttpRequest();
...
xhr.send(formData);
napisałem raport o błędzie na to: https://bugs.webkit.org/show_bug.cgi?id= 63898 – meleyal
Najnowsze wersje Chrome wydają się przedstawiać ten sam problem, co przeglądarka Safari. Czy miałeś szczęście, szukając standardowej metody ich filtrowania? –
Wygląda na to, że istnieje własność 'isDirectory' oparta na tej dokumentacji https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry/isDirectory, ale ta funkcja może nie być obsługiwana w Safari. –