Pređi na sadržaj
FFormhook
Nazad na blog

Blog

Otpremanje fajlova na statičkom sajtu: vaše prave opcije

· 3 min čitanja

Tekstualna polja su laka — pravo pitanje se pojavi kad brief kaže "a kandidati treba da prilože CV." Statički sajt ne može da primi fajl; jednostavno ne postoji server koji bi ga primio. Evo stvarnih opcija, od najgore do najbolje.

Opcija 1: "pošaljite nam imejlom" (predaja)

Tražite od korisnika da prilog pošalju imejlom. Tehnički funkcioniše, otprilike kao faks mašina: fajl stiže odvojen od podataka forme, u inboks, bez ikakve strukture i bez kontrole veličine. Za sve što se ponavlja — prijave za posao, priloge uz podršku, fajlove za štampu — to se pretvara u večno ručno arhiviranje.

Opcija 2: direktno otpremanje u cloud skladište (DIY put)

Front-end JavaScript može da otprema direktno u objektno skladište (S3-stil potpisanih URL-ova). To je legitimna arhitektura — i iznenađujuće mnogo posla da se uradi bezbedno: nešto mora da generiše te potpisane URL-ove (znači ipak pišete serverless funkciju), sami implementirate proveru veličine i tipa, povezujete otpremljeni fajl sa unosom forme kojem pripada, i odlučujete gde na svetu se taj bucket nalazi — a to postaje bitno čim otpremanja sadrže lične podatke kao što je CV.

Izaberite ovo kada su otpremanja vaš proizvod. Za "priložite fajl uz formu" ovo je gomila instalaterskog posla.

Opcija 3: multipart preko bekenda za forme (dosadna, ali ispravna opcija)

HTML podržava polja za fajlove otprilike oduvek:

<form action="https://formhook.app/f/fh_your-key"
      method="POST" enctype="multipart/form-data">
  <input type="email" name="email" required>
  <textarea name="message" required></textarea>
  <input type="file" name="attachment">
  <button type="submit">Send</button>
</form>

Jedna stvar koju svi zaborave jeste enctype="multipart/form-data" — bez toga pregledač šalje naziv fajla umesto samog fajla. Kada bekend za forme primi POST, fajl se čuva zajedno sa svojim unosom: otvorite upit u kontrolnoj tabli, prilog je tu, odmah. Ograničenja veličine i tipa se sprovode na endpointu, a zaštita od spama se odnosi na ceo unos, uključujući fajlove.

U Formhook-u, otpremanje fajlova je dostupno od Pro paketa naviše, i — deo koji je bitan za evropske sajtove — otpremljeni fajlovi se čuvaju u EU regionu Cloudflare R2, tako da CV koji priloži kandidat iz EU dobija isti odgovor o rezidentnosti podataka kao i tekstualna polja: nikad ne napušta EU. (Detalji o skladištenju u dokumentaciji.)

Praktična pravila bez obzira koju opciju izaberete

  1. Ograničite unos. Koristite atribut accept (accept=".pdf,.png,.jpg") kao pomoć za UX, ali ga tretirajte kao savet — prava provera se dešava na endpointu.
  2. Recite korisnicima limit pre nego što ga dostignu. "Maks. 10 MB" pored polja je bolje od greške posle sporog otpremanja.
  3. Fajlovi su takođe lični podaci. CV je verovatno osetljiviji od polja forme oko njega. Politike čuvanja, brisanja i izvoza moraju da obuhvate priloge, a tvrdnja o lokaciji skladištenja u vašoj politici privatnosti mora da ih uključi. (Pogledajte GDPR listu za proveru.)
  4. Održite funkcionalnim put bez JS-a. Obična multipart forma se sasvim dobro šalje i bez ikakvog skripta; AJAX doterivanje dodajte preko toga, a ne umesto toga.

Šablon za statičke sajtove je ustaljen: sajt ostaje statičan, bekend za forme prima multipart POST, a fajl završava pored poruke uz koju je stigao. Forma je i dalje samo jedan atribut — plus jedan enctype.

Funkcionalna forma u jednoj liniji

Hostovano u EU, unosi se čuvaju zauvek, push obaveštenja na svakom paketu.

Počnite besplatno

Bez kreditne kartice · pročitajte dokumentaciju

Nastavite čitanje