Witam,
Po przeczytaniu kilkunastu postów stworzyłem sobie formularz wysyłający pliki na serwer oto działający kod z formularzem:
FORMULARZ:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" media="all" />
<!-- 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 -->
Nick allegrowicza:
<input type="text" name="nick"/><br /><br> <!-- 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 -->
<input name="userfile" type="file" /><br /> <input name="userfile" type="file" /><br /> <!-- Przyciska wyslij -->
<input type="submit" value="Send File" />
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/';
if(!is_dir($uploaddir . $upfolder)) mkdir($uploaddir . $upfolder, 0755
); $uploadsrc = $uploaddir . $upfolder . '/';
$uploadfile = $uploadsrc . basename($_FILES['userfile']['name']);
echo "File is valid, and was successfully uploaded.\n"; } else {
echo "Possible file upload attack!\n"; }
echo 'Here is some more debugging info:';
?>
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:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" media="all" />
<!-- 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 -->
Nick allegrowicza:
<input type="text" name="nick"/><br /><br> <!-- 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 -->
<input name="userfile" type="file" /><br /> <input name="userfile" type="file" /><br /> <input name="userfile" type="file" /><br /> <!-- Przyciska wyslij -->
<input type="submit" value="Send File" />
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/';
if(!is_dir($uploaddir . $upfolder)) mkdir($uploaddir . $upfolder, 0755
); $uploadsrc = $uploaddir . $upfolder . '/';
for($i=0; $i<2; $i++)
{
$uploadfile[$i] = $uploadsrc . basename($_FILES['userfile']['name']); echo "File is valid, and was successfully uploaded.\n"; } else {
echo "Possible file upload attack!\n"; }
}
echo 'Here is some more debugging info:';
?>
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.
Ten post edytował tejek 1.08.2008, 14:04:36