FormData on yksityiskohtainen johdanto ja käyttö https://developer.mozilla.org/zh ... ng_FormData_Objects
FormDatan menetelmät ja tapahtumat ovat siellä jo hyvin selkeitä, joten en tuhlaa niihin aikaa täällä. Tämä artikkeli selittää pääasiassa FormData-objektien käyttöä ja asynkronisia tiedostojen latauksia.
FormData-objekti mahdollistaa kokoelman avain-arvoparien järjestämisen, jotka lähetetään XMLHttpRequest-objektin avulla. Sitä käytetään ensisijaisesti lomaketietojen lähettämiseen, mutta sitä voidaan käyttää myös itsenäisesti lomakkeiden kautta siirretystä datasta.
1. Luo FormData-objekti alusta alkaen
Voit luoda oman FormData-objektisi ja lisätä avain-arvoparit objektiin append()-menetelmällä, näin:
Huomautus: Sekä kentät "userfile" että "webmasterfile" sisältävät tiedostoja. Kentälle "accountnum" annettu numero muunnetaan suoraan merkkijonoksi FormData.append()-menetelmällä (kentän arvo voi olla blob, tiedosto tai merkkijono: jos arvo ei ole blob eikä tiedosto, arvo muunnetaan merkkijonoksi). Tässä esimerkissä luodaan FormData-instanssi kentillä "username", "accountnum", "userfile" ja "webmasterfile", ja sitten XMLHttpRequest-objektin send()-menetelmää lomaketietojen lähettämiseen. Kenttä "webmasterfile" on möykky. Blob-objekti edustaa tiedostoobjektin raakadataa. Mutta blobin esittämän datan ei tarvitse olla javascriptin natiivimuodossa. Tiedostokäyttöliittymä perustuu blobeihin, perii blob-toiminnallisuuden ja laajentaa tukeaan käyttäjätiedostojärjestelmille. Blobin rakentamiseen voidaan kutsua Blob()-rakentajaa.
2. Hanki FormData-objekti HTML-lomakkeesta
Jotta saat FormData-objektin, joka sisältää olemassa olevaa lomakedataa, sinun täytyy määrittää lomakeelementti luodessasi FormData-objektia.
Näin:
Voit myös lisätä lisätietoja FormData-objektin saatuasi, kuten näin:
Tämä mahdollistaa lisätietojen lisäämisen ennen lähettämistä, ei välttämättä käyttäjän muokkaamaa tietoa.
3. Käytä FormData-objektia tiedoston lähettämiseen
Voit käyttää FormDataa tiedostojen lähettämiseen. Yksinkertainen <form>keskikohta voi <input>sisältää alkion:
Voit sitten lähettää sen seuraavalla koodilla:
Voit myös lisätä tiedoston tai blobin suoraan FormData-objektiin, kuten näin:
Append()-metodia käytettäessä voidaan käyttää kolmatta parametria tiedoston nimen lähettämiseen (joka lähetetään palvelimelle Content-Disposition -otsikon kautta). Jos kolmatta parametria ei ole määritelty tai tätä parametria ei tueta, kolmas parametri on oletuksena "blob".
Jos asetat oikeat asetukset, voit käyttää sitä myös jQueryn kanssa:
|