Po przeczytaniu kilkunastu postów stworzyłem sobie formularz wysyłający pliki na serwer oto działający kod z formularzem:
FORMULARZ:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="style.css" rel="stylesheet" type="text/css" media="all" /> </head> <body> <!-- Formularz wysyłania plików --> <form enctype="multipart/form-data" action="upload2.php" method="POST"> <!-- pole nikc - potrzebne do utworzenie katalogu o takiej samej nazwie jak nick --> <!-- MAX_FILE_SIZE zadeklarowanie wilkosci pliku --> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <!-- pola z nazwa pliku i roz. dododawane tablicy $_FILES array --> Send this file: <br /> <!-- Przyciska wyslij --> <input type="submit" value="Send File" /> </form> </body> </html>
PLIK PHP: upload2.php
<?php // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead // of $_FILES. $upfolder = $_POST['nick']; $uploaddir = './img/'; $uploadsrc = $uploaddir . $upfolder . '/'; } else { } ?>
Powyższe kody działają idealnie jednak mi to nie wystarcza i chciałbym alby ten formularz wysyłał dowolną ilość plików. Poniżej jest moja próba rozwiązania tego problemu jednak nie działa taka jak ma:
FORMULARZ DLA WIELU PLIKOW (taka szybka prowizorka:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="style.css" rel="stylesheet" type="text/css" media="all" /> </head> <body> <!-- Formularz wysyłania plików --> <form enctype="multipart/form-data" action="upload.php" method="POST"> <!-- pole nikc - potrzebne do utworzenie katalogu o takiej samej nazwie jak nick --> <!-- MAX_FILE_SIZE zadeklarowanie wilkosci pliku --> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <!-- pola z nazwa pliku i roz. dododawane tablicy $_FILES array --> Send this file: <br /> <!-- Przyciska wyslij --> <input type="submit" value="Send File" /> </form> </body> </html>
PLIK PHP DO TEGO FORMULARZA: upload.php
<?php // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead // of $_FILES. $upfolder = $_POST['nick']; $uploaddir = './img/'; $uploadsrc = $uploaddir . $upfolder . '/'; for($i=0; $i<2; $i++) { } else { } } ?>
Jednak nie działa poprawnie bo wysyła mi jedynie ostatni plik z grupy wybranych w formularzu. A po wybraniu SEND wyskakuje mi błąd:
File is valid, and was successfully uploaded. Possible file upload attack! Here is some more debugging info:Array ( [userfile] => Array ( [name] => id.jpg [type] => image/jpeg [tmp_name] => /tmp/phpabQt0P [error] => 0 [size] => 2734 ) )
Proszę o pomoc.