W IE9, FormData
nie jest obsługiwany, co sprawia, że przesyłanie plików przy użyciu XMLHttpRequest
jest znacznie mniej banalne.Przesyłanie plików przy użyciu AJAX bez FormData (IE9)
Czy to można zrobić? Widziałem już wspomnienia iFrames i chociaż nie jestem przeciwny napisaniu jakiegoś owłosionego kodu, nie mam pojęcia, jak to osiągnąć (wiele zasobów mówi o przesyłaniu do iFrame, ale nie o tym, jak zdobyć plik z iFrame na serwer).
Korzystanie z vanilla JavaScript (bez bibliotek stron trzecich), w jaki sposób jeden plik zostałby przesłany asynchronicznie bez użycia numeru FormData
?
Chodzi o to, że piszesz do serwera za pośrednictwem iframe. W rzeczywistości nie ma w tym udziału AJAX. Możesz sprawić, że będzie wyglądać jak AJAX, ukrywając element iframe i zwracając niektóre informacje do klienta za pośrednictwem elementu iframe po zakończeniu przesyłania pliku (np. Nazwę pliku i informacje o powodzeniu lub niepowodzeniu). – BrianS
ponieważ jest bez FileReadera (http://caniuse.com/#feat=filereader), IE9 musi użyć formularza do wysłania plików na serwer. element iframe nie jest potrzebny, ale może złapać odpowiedź serwera i wygląda lepiej, jeśli odpowiedź na przesłanie nie jest funkcjonalną stroną html. – dandavis
Może być uważany za duplikat http://stackoverflow.com/questions/7909161/jquery-iframe-file-upload. Przynajmniej odpowiedź jest tutaj. – hon2a