ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π°ΡΡΠΈΠ±ΡΡΠ° name Π² input-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
ΡΠΎΡΠΌΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² HTML-ΡΠΎΡΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°,
ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· HTML-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ SELECT ΠΈΠ»ΠΈ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Ρ ΡΠΈΠΏΠΎΠΌ checkbox:
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
<form action="file-upload.php" method="post" enctype="multipart/form-data">
Π€Π°ΠΉΠ»Ρ:<br />
<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />
<input type="submit" value="ΠΡΠΏΡΠ°Π²ΠΈΡΡ" />
</form>
ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ PHP ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ
$_FILES['userfile'],
$_FILES['userfile']['name']
ΠΈ $_FILES['userfile']['size'].
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ
/home/test/review.html
ΠΈ /home/test/xwp.out. Π’ΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
$_FILES['userfile']['name'][0] Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
review.html, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
$_FILES['userfile']['name'][1] β
xwp.out. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
$_FILES['userfile']['size'][0] Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ
ΡΠ°ΠΉΠ»Π° review.html ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
PHP ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ $_FILES['userfile']['name'][0],
$_FILES['userfile']['tmp_name'][0],
$_FILES['userfile']['size'][0]
ΠΈ $_FILES['userfile']['type'][0].
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
max_file_uploads
ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ
Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ. ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎΡΠΌΠ°
Π½Π΅ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
Π HTML-ΠΏΠΎΠ»ΡΡ
Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ webkitdirectory,
ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²Π΅ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠΎΜΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ
ΡΠ°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ full_path, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΈΠ»ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
<form action="file-upload.php" method="post" enctype="multipart/form-data">
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°:<br />
<input name="userfile[]" type="file" webkitdirectory multiple />
<input type="submit" value="ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ" />
</form>
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΡΡΠΈΠ±ΡΡ webkitdirectory Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΈ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌ.
ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π°ΡΡΠΈΠ±ΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠΈΡ
ΡΠ°ΠΉΡΠ°Ρ
: Π°ΡΡΠΈΠ±ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π‘ΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ, ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² Π±ΡΠ΄ΡΡΠΈΡ
Π²ΡΠΏΡΡΠΊΠ°Ρ
.
PHP Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π°Π³Π΅Π½Ρ,
ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΡΠΏΠ΅ΡΠ³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² $_FILES.
ΠΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ full_path ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²,
ΠΈ PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΡΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.