Pro upload souboru do databßze je t°eba ve svΘ aplikaci vytvo°it:
HTML formulß°
Je t°eba vytvo°it HTML formulß° s aspo≥ jednφm formulß°ov²m prvkem <INPUT TYPE="FILE">. Nap°.:
<FORM METHOD="POST" ACTION="/cgi-bin/wbcgi.exe/db/app/addfile.wbc"
ENCTYPE="multipart/form-data">
Vyberte soubor: <INPUT TYPE="FILE" NAME="soubor"><BR>
<INPUT TYPE="SUBMIT" VALUE="Poslat">
</FORM>
Zßrove≥ s <INPUT TYPE="FILE">
lze pou₧φt i libovolnΘ dalÜφ formulß°ovΘ prvky. Lze takΘ odeslat vφce soubor∙ jednφm HTML formulß°em.
Pozor: Je t°eba nastavit parametr METHOD
na POST
a parametr ENCTYPE
na multipart/form-data
!
WWW objekt
WWW objekt dostane na vstupu tyto vstupnφ formulß°ovΘ prom∞nnΘ:
nßzev prom∞nnΘ | typ prom∞nnΘ | obsah prom∞nnΘ |
soubor | Blob | obsah odesφlanΘho souboru |
soubor_filename | String | jmΘno a p°φpona souboru |
soubor_content_type | String | MIME-typ souboru |
JmΘna prom∞nn²ch se tvo°φ podle pojmenovßnφ <INPUT TYPE="FILE">
takto: obsah souboru je pojmenovßn p°φmo tφmto jmΘnem, k pojmenovßnφ jmΘna a p°φpony a MIME-typu se p°idßvß p°φpona "_filename", resp. "_content_type". K <INPUT TYPE="FILE" NAME="abc123">
budou vytvo°eny prom∞nnΘ abc123 s obsahem souboru, abc123_filename s jmΘnem a p°φponou souboru a abc123_content_type s MIME-typem souboru.
SQL p°φkaz vytvß°ejφcφ nov² zßznam v tabulce Files m∙₧e vypadat takto:
SQLStatement:
+ INSERT INTO Files(content,filename,content_type)
+ VALUES (:<soubor,"%soubor_filename%","%soubor_content_type%")
Obsah souboru je nutno p°edßvat prost°ednictvφm embedded variable.
Poznßmka: Bylo by mo₧no pou₧φt zp∙sob p°edßnφ citacφ binßrnφho °et∞zce (tj.
+ VALUES (%soubor%,"%soubor_filename%","%soubor_content_type%")
ale tento SQL p°φkaz by byl dvakrßt delÜφ, ne₧ dΘlka vklßdanΘho souboru (binßrnφ °et∞zce k≤dujφ jeden bajt jako hexadecimßlnφ dvojΦφslφ) a navφc souΦasnß verze SQL serveru nenφ p°ipravena na zpracovßnφ extrΘmn∞ dlouh²ch SQL p°φkaz∙ (pro ilustraci: p°i vklßdßnφ souboru dΘlky 500KB by vznikl SQL p°φkaz dΘlky v∞tÜφ ne₧ 1MB).
PokraΦovßnφ: