- file:/// omogoča navigacijo po lokalnem datotečnem sistemu iz brskalnika v Windows y Android.
- API za dostop do datotečnega sistema ponuja napredne zmogljivosti branja in pisanja v lokalne datoteke in imenike.
- Varnost temelji na eksplicitnih uporabniških dovoljenjih in jasnem nadzoru nad tem, katere poti so izpostavljene.
- Obstajajo polifili in knjižnice, ki združujejo ta API s klasičnimi metodami, kadar ni izvorne podpore.

Uporaba brskalnika kot majhnega raziskovalca datotek je mogoča in, če se uporablja pravilno, je lahko izjemno uporabna. Od odpiranja preprostega lokalnega dokumenta z datoteko:/// do dela z zmogljivim API-jem za dostop do datotečnega sistemaDandanes sodobni brskalniki ponujajo veliko več možnosti, kot jih običajno uporabljamo.
V tem priročniku bomo korak za korakom videli, kako odpreti lokalne datoteke v spletni brskalnik uporaba datoteke file:/// v Chromu, Edgeu in FirefoxuKako spremeniti brskalnik v osnovni raziskovalec datotek v sistemih Windows in Android ter kako lahko razvijalci z uporabo API-ja za dostop do datotečnega sistema gredo še korak dlje za branje, pisanje in upravljanje lokalnih datotek in map iz spletne aplikacije.
Kaj v resnici pomeni odpiranje lokalnih datotek z file:///
Ko napišete pot, ki se začne z file:/// v naslovni vrstici brskalnika, Brskalniku naročate, naj namesto do interneta dostopa do lokalnega datotečnega sistema.To pomeni, da odprete nekaj, kar je na vaši napravi: trdi disk, notranji pomnilnik ali SD-kartico.
Ta posebna shema URL-jev (file:///) Deluje podobno kot tipkanje C: v sistemu Windows ali / v Linux in macOSPrilagojeno je le logiki brskalnika. Od tam naprej boste videli nekakšen seznam map in datotek, brez kakršnih koli dodatkov: imen, velikosti, datuma spremembe in skoraj ničesar drugega.
Seveda je treba to upoštevati Brskalniki te lokalne poti obravnavajo s številnimi varnostnimi omejitvami.Na primer, spletno mesto, ki ga obiščete z interneta, privzeto ne more prosto brati vaših lokalnih datotek samo zato, ker odprete URL z file:///Vedno je potrebna izrecna gesta ali dovoljenje uporabnika.
Uporaba brskalnika kot raziskovalca datotek v sistemu Android
Mnogi telefoni Android nimajo spodobnega upravljalnika datotek proizvajalca ali pa je tisti, ki je prednameščen, precej omejen. V takih primerih, Uporaba Chroma, Edgea ali drugega brskalnika, ki temelji na Chromiumu, kot improviziranega brskalnika vas lahko reši iz zagate..
Trik je zelo preprost: Odprite brskalnik, ki temelji na Chromiumu (Chrome, Edge, Brave itd.) in v naslovno vrstico vnesite datoteka: /// sdcard /Android prepozna shranjevanje glavni notranji kot sdcard, zelo podobno kot Windows uporablja C: za glavni pogon.
Ko zaženete ta naslov, bo brskalnik običajno zahteval dovoljenje za branje notranjega pomnilnika. Ko odobrite to dovoljenje, se bo prikazal indeks, ki prikazuje korenske mape vašega notranjega pomnilnika.Od tam lahko vstopate v mape in jih zapuščate natanko tako, kot če bi brskali po spletnem mestu s povezavami.
V vsaki mapi boste videli tako podmape kot datoteke. Datoteke so prikazane s polnim imenom, vključno s končnico, velikostjo in datumom zadnje spremembe.Navedeno je tudi naslednje: skrite mape, ki se v Androidu običajno začnejo s piko, kot na primer .nomedia ali druge podobne.
Čeprav je seznam zelo spartanski, Večina sodobnih brskalnikov lahko neposredno odpre številne vrste datotek tako, da se jih dotaknete.Slike, videoposnetki, zvok, besedilni dokumenti itd. Ni sličic ali predogledov, vendar bo brskalnik s preprostim klikom na ime datoteke poskusil prikazati ali predvajati datoteko.
Spremenite Chrome in Edge v majhen raziskovalec datotek na vašem računalniku
Na namiznih računalnikih, tako v sistemu Windows kot v drugih sistemih, Za navigacijo po lokalnih diskih z uporabo datoteke:/// lahko uporabite tudi Chrome, Edge in druge brskalnike, ki temeljijo na ChromiumuNačelo je enako kot v Androidu, vendar je pot drugačna.
Če uporabljate Windows, je primarni pogon najpogosteje C:. V tem primeru vtipkajte v naslovno vrstico datoteka:///C: in pritisnite EnterBrskalnik vam bo prikazal vsebino korenske mape tega pogona: mape, kot so Windows, Program Files, Usuarios, Itd
Če imate več diskov ali particij, Črko v URL-ju lahko zamenjate z ustrezno.. Na primer, file:///D: za drug album oz. file:///E: za spomin USB da je bil nameščen s to črko. Od tam kliknite na mape, da se premaknete naprej, in uporabite gumb za nazaj v brskalniku, da se vrnete.
Tako kot na Androidu, V vsaki mapi boste videli datoteke in podmape z vidno velikostjo, datumom spremembe in končnicoNe ustvarja sličic ali lepih ikon, vendar je zadosten za iskanje določene datoteke ali hiter pregled strukture imenikov.
Večina brskalnikov Chromium Omogočajo vam neposredno odpiranje večpredstavnostnih datotek in celo nekaterih formatov dokumentov. Preprosto s klikom nanje. Slike, videoposnetki, zvočni posnetki ali datoteke z navadnim besedilom se na zavihku prikažejo povsem naravno.
Odprite lokalne datoteke v Chromu in Firefoxu brez ročnega tipkanja file:///
Poleg tipkanja poti z file:///Brskalniki vključujejo bližnjice, zasnovane posebej za hitro odpiranje lokalnih datotek. V Chromu lahko na primer uporabite bližnjico na tipkovnici Ctrl + O (Control + O), ko je okno brskalnika aktivno.
S pritiskom na to bližnjico, Odpre se tipično pogovorno okno operacijskega sistema »Odpri datoteko«Preprosto poiščite želeno datoteko, jo izberite in potrdite. Chrome jo bo naložil v trenutni zavihek ali novega, odvisno od vrste datoteke in vaših nastavitev.
Firefox ponuja več možnosti. Po eni strani, Lahko greste v glavni meni in izberete možnost »Odpri datoteko ...«kar naredi popolnoma isto: prikaže okno za izbiro datotek v sistemu. Lahko pa tudi neposredno vnesete pot, kot je ta, v naslovno vrstico: file:///// tako da se brskalnik v sistemu Windows zažene s prikazom vsebine pogona C:.
S katero koli od teh metod, Praktični rezultat je, da brskalnik postane lokalni pregledovalnik datotek.Pomaga vam lahko, ko Windows Explorer Zamrzne, ko imate težave z običajnim upraviteljem datotek ali preprosto, ko želite odpreti vrsto dokumenta, ki ga brskalnik še posebej dobro obravnava.
API za dostop do datotečnega sistema: preskok od pregledovalnika do urejevalnika
Vse, kar smo do sedaj videli, temelji na "ročni" uporabi file:/// in pogovornih oken za odpiranje datotek, torej na stvareh, ki jih uporabnik počne ročno. Toda že nekaj časa brskalniki, ki temeljijo na Chromiumu, vključujejo API za dostop do datotečnega sistema., ki spletnim aplikacijam omogoča veliko naprednejše delo z lokalnimi datotekami.
Ta API omogoča spletnemu mestu, potem ko zahteva vaše dovoljenje, Preberite in shranite spremembe neposredno v datoteke in mape v vaši napraviZahvaljujoč temu je mogoče resne urejevalnike besedil in IDE ustvariti neposredno iz brskalnika. programiranje, urejevalnike fotografij in videoposnetkov, vodje projektov in številna druga orodja, ki so bila prej smiselna le za razvoj kot namizne aplikacije.
Pomembno je, da tega sodobnega API-ja ne zamenjamo s starejšimi ali zastarelimi. Ni enako kot vmesnik FileSystem niti API za datoteke in vnose v imenik niti stara specifikacija »API za datoteke: imeniki in sistem«, ki je predlagal druge mehanizme za upravljanje hierarhij datotek in območij za shranjevanje v peskovniku.
Trenutni API za dostop do datotečnega sistema Zasnovan je bil s posebno skrbnostjo glede varnosti, dovoljenj in uporabniške izkušnje.Za odpiranje izbirnika datotek ali imenikov so vedno potrebna eksplicitna dejanja (kot je klik na gumb), uporabnik pa je vedno natančen glede natančnih poti, do katerih dovoljuje dostop.
Glede združljivosti, API deluje v večini brskalnikov, ki temeljijo na Chromiumu, v sistemih Windows, macOS, Linux, ChromeOS in Android.Pomembna izjema je Brave, kjer je za uporabo še vedno treba aktivirati zastavico. Drugi brskalniki, ki ne uporabljajo Chromiuma, je morda ne izvajajo ali pa jo izvajajo le delno.
Preverite, ali brskalnik podpira API za dostop do datotečnega sistema
Kot razvijalec morate najprej vedeti, ali uporabnikov brskalnik podpira ta API, preden ga poskusite uporabiti. Najenostavnejši način je preveriti, ali v globalnem objektu obstajajo ustrezne metode za izbiro datotek.na primer s preverjanjem, ali showOpenFilePicker je na voljo v window (o self pri delavcu).
Tipičen vzorec je sestavljen iz nečesa takega: »Če je 'showOpenFilePicker' nastavljen na self, lahko uporabim API; sicer se moram zateči k alternativni metodi.«To omogoča implementacijo hibridnih rešitev, kjer se ob prisotnosti podpore izkoristijo prednosti API-ja, če pa podpore ni, se uporabljajo tradicionalne tehnike, kot so obrazci za nalaganje datotek.
To je tudi dobra ideja Testirajte v ciljnih brskalnikih in na različnih OSKer čeprav je osnova Chromium, lahko nekateri proizvajalci omogočijo ali onemogočijo določene funkcije zaradi varnosti, pravilnikov ali zmogljivosti.
Prvi primer: odpiranje lokalne datoteke iz spletne aplikacije
Eden od kanoničnih primerov za razumevanje tega API-ja je gradnja urejevalnik besedil za eno datoteko, ki omogoča odpiranje, spreminjanje in shranjevanje dokumentaNi treba, da je spektakularen: dokler bere in piše navadno besedilo, že ponazarja, kako deluje.
Vstopna točka tukaj je metoda window.showOpenFilePicker(). To metodo je mogoče poklicati le v varnem kontekstu (HTTPS) in kot odgovor na uporabnikovo gestoPrikaže izvorno pogovorno okno, v katerem lahko uporabnik izbere datoteko. Ko je datoteka izbrana, vrne niz ročajev, običajno z enim samim FileSystemFileHandle.
Ta ročaj shranjuje vse informacije in metode, potrebne za delo z izbrano datoteko. Priporočljivo je shraniti sklic na ročaj, saj ga boste kasneje uporabili za branje datoteke, shranjevanje sprememb ali izvajanje katere koli druge operacije.Dokler ohranite ta ročaj in uporabnik ni preklical dovoljenj, bo vaša aplikacija lahko komunicirala z datoteko.
Ko enkrat imate FileSystemFileHandle, predmet lahko pridobiš File pravi klic handle.getFile()Ta predmet File Vsebuje podatke datoteke kot blob, do njegove vsebine pa lahko dostopate z metodami, kot so text(), arrayBuffer(), stream() o slice() če potrebujete naključni dostop.
V praksi, za preprost urejevalnik besedil, običajna stvar je uporaba file.text() pridobiti celotno vsebino kot nizin vstavite to besedilo v <textarea> da ga lahko uporabnik ureja. Pomembno je upoštevati, da objekt File Če je datoteka na disku spremenjena na drug način, preneha biti veljavna, v tem primeru je priporočljivo ponovno poklicati. getFile().
Shrani spremembe: zapiši v lokalni datotečni sistem
Za shranjevanje uporabniških sprememb API ponuja dve tipični poti: »preprosto« shranjevanje, ki prepiše izvirno datoteko, in »Shrani kot«, ki ustvari novo datotekoTemeljna razlika je v tem, ali že imate ročaj ciljne datoteke ali pa morate, da uporabnik izbere novo pot in ime.
Ko želite ustvariti novo datoteko ali shraniti kopijo z drugim imenom, bi morali uporabiti showSaveFilePicker()Ta metoda odpre izbirnik datotek v shranjenem načinu, kar uporabniku omogoča, da določi ime, mapo in končnico. Omogočate lahko možnosti za predlaganje vrst datotek, na primer tako, da navedete, da gre za besedilni dokument in da je želena končnica . .txt.
Pomembna podrobnost je ta Moral bi poklicati showSaveFilePicker() neposreden odziv na uporabnikovo gesto (na primer klik na gumb »Shrani«) in ga ne odlašajte, medtem ko opravljate zahtevno obdelavo. Če opravite vse predhodno delo in nato z zamudo poskusite odpreti pogovorno okno, lahko brskalnik vrže varnostno napako, ker ne upošteva več, da »obdelujete uporabniško gesto«.
Ko imate FileSystemFileHandle s kazalcem na datoteko, kamor želite shraniti, Naslednji korak je ustvariti FileSystemWritableFileStream uporabo fileHandle.createWritable()Ta tok boste uporabili za pisanje podatkov. Če brskalnik zazna, da še nimate dovoljenja za pisanje, bo prikazal pogovorno okno z dovoljenji; če ga uporabnik zavrne, bo klic sprožil izjemo.
S potokom v roki, Preprosto pokličeš writable.write(contenido) z nizom, Blobom ali BufferSourceTelo odgovora HTTP lahko celo neposredno pošljete v tok z response.body.pipeTo(writable)Ko končate s tipkanjem, zaprete prenos z writable.close(), kar je trenutek, ko so spremembe konsolidirane na disku.
Medtem ko je tok odprt, lahko uporabite tudi metode, kot so seek() o truncate() za premakniti kazalec pisanja na določen položaj ali spremeniti velikost datotekeVendar je pomembno vedeti, da spremembe niso trajno uporabljene, dokler tok ni zaprt.
Predlagaj uporabniku ime datoteke in domačo mapo
API skrbi tudi za uporabniško izkušnjo v sistemskih pogovornih oknih. Na primer Pri klicu lahko določite predlagano ime datoteke showSaveFilePicker()To uporabniku omogoča, da vidi nekaj bolj opisnega, na primer »Nov dokument.txt«, namesto generičnega »Brez naslova«.
Prav tako Možno je predlagati začetno mapo, kjer se zažene izbirnik datotek.To se naredi s posredovanjem lastnosti startIn ko pokličeš showSaveFilePicker(), showOpenFilePicker() o showDirectoryPicker()Vrednosti so lahko nizi, kot so desktop, documents, downloads, music, pictures o videos, ki ustrezajo standardnim lokacijam sistema.
Prav tako imate možnost uporabite kot vrednost startIn upravitelj datotek ali imenikov, ki ga že imateV tem primeru se pogovorno okno odpre neposredno v mapi, kjer se nahaja ta ročaj, kar je zelo priročno za nadaljevanje delovnega konteksta zadnje seje.
Če vaša aplikacija obravnava različne vrste datotek (na primer besedilne dokumente in vdelane slike), Za vsako vrsto pogovornega okna lahko določite različne ID-je.Na ta način si bo brskalnik zapomnil zadnjo uporabljeno mapo neodvisno za vsak ID in ne boste zamenjali poti dokumentov s potmi slik.
Zapomni si nedavne datoteke in mape z IndexedDB
Ena od prednosti dostopa do datotečnega sistema je, da so njegovi obdelovalci serializabilni. To pomeni, da lahko shranite FileSystemFileHandle y FileSystemDirectoryHandle v indeksirani podatkovni zbirki in jih pridobiti v naslednjih sejah, vedno pri čemer upoštevati pravilnik o dovoljenjih.
Zahvaljujoč temu lahko spletne aplikacije ponujajo tipične namizne funkcionalnosti, kot so seznami nedavnih datotek, ponovno odpiranje zadnjega projekta ali obnovitev prejšnje delovne mapeRočke morate le shraniti v podatkovno bazo brskalnika in jih prebrati, ko se aplikacija zažene.
Ko prikličete shranjen ročaj, Ne predvidevajte, da bodo dovoljenja ostala v veljavi.Brskalnik se lahko odloči, da je treba ponovno zahtevati avtorizacijo, na primer zato, ker je minil čas ali ker je bil zadnji zavihek iz tega vira zaprt. Zato je priporočljivo, da vaša koda to preveri.
Za to preverjanje, API vključuje metode queryPermission() y requestPermission() tako v upravljalnikih datotek kot imenikovNajprej vprašate, v kakšnem stanju je dovoljenje, in če ni "odobreno", ga lahko znova zahtevate od uporabnika, pri čemer v možnostih navedete, ali potrebujete samo branje ali branje in pisanje.
Dobra praksa je združite oba koraka v eno funkcijo pomoči Če ima uporabnik določen ročaj in način (samo za branje ali branje/pisanje), mora preveriti, ali je dovoljenje že odobreno, in če ni, prikazati ustrezen poziv. To zmanjša število pogovornih oken in poenostavi delovanje.
Odprite in brskajte po celotnih imenikih iz brskalnika
Poleg posameznih datotek API omogoča delo s celimi mapami. z showDirectoryPicker() uporabnik lahko izbere celoten imenikin aplikacija prejme FileSystemDirectoryHandle ki omogoča dostop do vseh njegovih elementov.
Privzeto boste imeli dovoljenje za branje datotek v tem imeniku, če pa boste morali vanje tudi pisati Dostop za branje in pisanje lahko zahtevate tako, da posredujete { mode: 'readwrite' } pri klicu showDirectoryPicker()Od tega trenutka naprej lahko vaša aplikacija navaja in upravlja vsebino v skladu z dodeljenim dovoljenjem.
Za navigacijo po mapi, Asinhrono lahko iterirate čez dirHandle.values()ki enega za drugim vrne elemente, ki jih vsebuje: datoteke in poddirektorije. Vsak vnos ima lastnost kind ki vam pove, ali gre za "file" ali "directory".
Če potrebujete dostop do informacij o vsaki datoteki, kot je njena velikost, lahko pokličete entry.getFile(). V teh primerih je priporočljivo, da se odčitki izvajajo vzporedno z uporabo Promise.all() ali podobne tehnike, namesto da bi šli enega za drugim strogo zaporedno, kar je lahko počasneje.
To lahko storite tudi iz imenika ustvarite nove mape ali datoteke z getDirectoryHandle() y getFileHandle()V možnostih lahko določite, ali želite, da se ustvarijo, če še ne obstajajo. Na primer, lahko nastavite strukturo projekta, kot je »Moj projekt / Koda / Opombe.txt«, neposredno iz spletne aplikacije.
Upravljanje datotek: brisanje, preimenovanje in premikanje
API ni omejen na branje in pisanje. Omogoča tudi brisanje datotek in map iz imenika z uporabo removeEntry() nad a FileSystemDirectoryHandleČe gre za mapo, lahko brisanje izvedete rekurzivno, tako da vključuje vse njene podmape in datoteke.
Če namesto pregledovanja imenika želite neposredno ukrepati na ročaju datoteke ali mape, Nekateri brskalniki ponujajo to metodo remove() en FileSystemFileHandle y FileSystemDirectoryHandleNa ta način odstranite ta element, ne da bi se morali sklicevati na njegovo ime v nadrejenem imeniku.
Za organizacijske operacije, kot sta preimenovanje ali premikanje elementov v drugo mapo, Obstaja metoda move() v vmesniku FileSystemHandleLahko mu neposredno posredujete novo ime, ciljni imenik ali imenik in novo ime za hkratno premikanje in preimenovanje.
Vendar pa obstajajo nianse glede združljivosti: podpora move() Je bolj zrel za datoteke znotraj izvornega zasebnega datotečnega sistema (OPFS).in je morda še vedno za zastavicami ali ni implementiran za vse scenarije ali za imenike v določenih brskalnikih.
Povlecite in spustite datoteke in mape na splet
API za dostop do datotečnega sistema se zelo dobro integrira s sistemom povleci in spusti HTML. Ko uporabnik povleče datoteke ali mape iz operacijskega sistema na spletno stranbrskalnik ustvari elemente DataTransferItem sodelavci.
Skozi metodo DataTransferItem.getAsFileSystemHandle(), lahko dobiš FileSystemFileHandle ali je element datoteka ali FileSystemDirectoryHandle če gre za imenikAplikacija lahko tako uporabniku omogoči, da povleče in spusti celotno mapo s fotografijami in dela neposredno z njeno vsebino.
Upoštevati morate, da v kontekstu vlečenja in spuščanja DataTransferItem.kind Vedno bo "datoteka" tako za datoteke kot za mapeRazlikovanje med datoteko in imenikom boste dobili s pregledom lastnosti kind od FileSystemHandle ki ti vrača getAsFileSystemHandle()ki bo razlikoval med "file" y "directory".
Zasebni izvorni datotečni sistem (OPFS) in optimiziran dostop
Poleg dostopa do uporabnikovih datotek in map brskalniki Chromium ponujajo tudi izvorni zasebni datotečni sistem (OPFS)To je prostor za shranjevanje, namenjen posameznemu spletnemu mestu, do katerega uporabnik nima neposrednega dostopa iz operacijskega sistema.
V praksi to pomeni, da Čeprav brskalnik te podatke interno shranjuje na disk, jih uporabnik ne bo našel kot "običajne" datoteke v nobeni stari mapi.To je lahko baza podatkov, pakirane datoteke ali katera koli notranja struktura, ki jo brskalnik oceni kot ustrezno.
Iz API-ja lahko dostopate do korena tega zasebnega sistema z uporabo navigator.storage.getDirectory(), ki vrne FileSystemDirectoryHandle. Od tam lahko ustvarjate datoteke in imenike, jih berete, vanje pišete, jih preimenujete ali brišete, kot da bi bili elementi lokalnega datotečnega sistema.Vendar vedoč, da so izolirani in namenjeni izključno vaši spletni aplikaciji.
Za naprednejše potrebe po zmogljivosti, Chromium vključuje posebno vrsto datoteke z optimiziranim sinhronim dostopom. Skozi fileHandle.createSyncAccessHandle() (na voljo v delavcih) lahko dobite ročaj, ki omogoča sinhrono in izključno branje in pisanje, kar je uporabno za zelo intenzivne ali na zakasnitev občutljive primere uporabe.
Pridobivanje ročaja je še vedno asinhrono, ko pa ga enkrat imate, Operacije branja in pisanja se izvajajo kot neposredni klici, ki manipulirajo z bajtnimi medpomnilniki.To se zelo približa zmogljivosti izvorne aplikacije, vendar brez zapuščanja spletnega okolja in ohranjanja izolacije od zasebnega izvornega sistema.
Polyfills in alternative, kadar ni izvorne podpore
Čeprav API za dostop do datotečnega sistema ponuja veliko možnosti, Vsi brskalniki ga še ne podpirajoNi mogoče ustvariti celotnega polifilla, ki bi repliciral vse njegove zmogljivosti, predvsem zato, ker ni mogoče zanesljivo simulirati dostopa do izvornega datotečnega sistema brez sodelovanja samega brskalnika.
Vendar pa je nekatere dele mogoče približno oceniti. Posnema showOpenFilePicker() preprost <input type="file">, ki prikaže polje za izbiro datotek in uporabniku omogoči izbiro ene ali več datotek.
Nekaj podobnega se zgodi tudi pri varčevanju. Posnemati showSaveFilePicker() povezava se pogosto uporablja <a download="nombre"> S klikom nanj se začne prenos Bloba, ustvarjenega iz JavaScripta. To vam omogoča, da »shranite« podatke, ki jih ustvari spletno mesto, čeprav ne ponuja možnosti prepisovanja obstoječih datotek.
Glede izbiranja celotnih imenikov, tradicionalno se uporablja atribut »nestandardno« webkitdirectory en <input type="file">ki vam omogoča, da izberete mapo in prejmete seznam datotek, ki jih vsebuje. Ni univerzalna rešitev niti ni tako zmogljiva kot showDirectoryPicker()vendar zajema nekatere primere.
Da bi poenotili te pristope, Obstajajo knjigarne, kot so dostop-do-fs-browserja Poskušajo uporabljati sodobni API, kadar koli je na voljo, in če ni, se samodejno vrnejo k tem boljšim alternativam.Na ta način razvijalec piše relativno enotno kodo, knjižnica pa poskrbi za prilagajanje okolju.
Varnost, dovoljenja in nadzor uporabnikov
Vsa ta moč prihaja z odgovornostmi in ekipe brskalnikov se tega zelo dobro zavedajo. Zasnova API-ja za dostop do datotečnega sistema se vrti okoli dveh načel: uporabniškega nadzora in preglednosti.Spletna stran ne more na skrivaj prebrati polovice trdega diska.
Ko uporabnik odpre datoteko z izbirnimi polji (bodisi za branje bodisi za shranjevanje nove), To je gesta, ki podeli dovoljenje za branje ali pisanje v določeni datoteki ali mapi.Če si uporabnik premisli in prekliče dialog, spletno mesto ne prejme ničesar in zato ne pridobi dostopa.
Če želite shraniti novo datoteko, kliknite polje »Shrani« Ne omogoča vam le izbire imena in poti, temveč služi tudi kot podelitev dovoljenja za pisanje v novo ustvarjeni datoteki.Logika je enaka tisti, ki se že leta uporablja pri elementih, kot so <input type="file">vendar razširjen z več zmogljivostmi.
Ko želi spletna aplikacija spremeniti datoteko, ki že obstaja, Tega ne more preprosto storiti; brskalnik lahko prikaže posebno obvestilo, ki zahteva dovoljenje za pisanje vanj.To pogovorno okno je mogoče odpreti le kot odziv na dejanje uporabnika, na primer s pritiskom na gumb »Shrani spremembe«.
Če se uporabnik odloči, da ne bo podelil dovoljenja za pisanje, Spletna stran mora ponujati neko alternativo: prenos kopije, shranjevanje v oblak, delo v OPFS ali drug podoben mehanizem.Ideja je, da ima uporabnik vedno zadnjo besedo o tem, česa se dotakne v njegovem lokalnem sistemu.
Kar zadeva preglednost, Brskalniki v naslovni vrstici prikažejo ikono, ko ima spletno mesto dostop do lokalnih datotekČe uporabnik klikne na to ikono, bo videl seznam datotek ali map, do katerih ima stran v tistem trenutku dostop, in lahko kadar koli prekliče dovoljenja.
Dovoljenja niso trajna. Na splošno stran ohrani možnost shranjevanja datotek le, dokler je odprt vsaj en zavihek iz tega vira.Ko so vse zaprte, lahko brskalnik meni, da je seja končana, in ob naslednji uporabi bo treba ponovno zahtevati dovoljenje za te datoteke ali imenike.
Z združevanjem sheme file:/// za odpiranje določenih virov, bližnjice na tipkovnici za nalaganje lokalnih datotek in API za dostop do datotečnega sistema za globoke integracije Zaradi tega je brskalnik veliko bolj vsestransko orodje tako za uporabnike kot za razvijalce.kar vam omogoča hiter ogled videoposnetka, shranjenega na disku, ali urejanje celotnih projektov, ne da bi zapustili spletno okolje.
Strasten pisec o svetu bajtov in tehnologije nasploh. Rad delim svoje znanje s pisanjem in to je tisto, kar bom počel v tem blogu, saj vam bom pokazal vse najbolj zanimive stvari o pripomočkih, programski opremi, strojni opremi, tehnoloških trendih in še več. Moj cilj je, da vam pomagam krmariti po digitalnem svetu na preprost in zabaven način.