oto opis sytuacji. Muszę napisać skrypt, który będzie wysyłał pliki na serwer, przeglądał je, kasował. Ma też być możliwość pobrania pliku z serwera. Dodatkowe założenie: wszystko ma być zawarte w jednym pliku php.
To jest to, co do tej pory stworzyłem:
<?php $id = $_GET['id']; if($id != 0) { $plik = "pliki/".$id; } ?> <?php $MaxFileSize=100000; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Pliki</title> <style type="text/css"> body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; background-color: #EBEBEB; } </style> </head> <body> <h1>Serwer</h1> <hr /> <h3>Dodaj pliki:</h3> <?php // upload plików if($id == 0) { { echo "<div style=\"color:red; text-align:center\">Niedozwolone uzycie spacji w nazwie pliku:<b> ".$_FILES['pliki']['name'][$i]."</b>.</div><br />"; else { $UploadFile = "pliki/".$_FILES['pliki']['name'][$i]; { if ($_FILES['pliki']['size'][$i] > $MaxFileSize) { } else { { echo "<div style=\"color:green; text-align:center\">Plik:<b> ".$_FILES['pliki']['name'][$i]."</b> został poprawnie uploadowany i skopiowany w nowe miejsce</div><br />"; } else { echo "<div style=\"color:red; text-align:center\">Błąd przy uploadowaniu pliku:<b> ".$_FILES['pliki']['name'][$i]."</b>.</div><br />"; } } } } } } ?> <div align="center"> <form enctype="multipart/form-data" method="post" action="przegladarka.php"> <table bgcolor="#A0A0A0"> <tr> <td>Plik 1:</td> <td><input type="file" size="40" name="pliki[]" value=""></td> </tr> <tr> <td>Plik 2:</td> <td><input type="file" size="40" name="pliki[]" value=""></td> </tr> <tr> <td>Plik 3:</td> <td><input type="file" size="40" name="pliki[]" value=""></td> </tr> </table> <input type="submit" name="Wyślij" value="Wyslij"></form> </div><hr /> <h3>Pliki na serwerze:</h3> <?php // przeglądanie plików znajdujących się na serwerze while($plik = $folder->read()) { if (($plik != '.') && ($plik != '..')) { $pliki[$nazwa["basename"]] = $nazwa["extension"]; $dodaj = true; if ($typ[$i] == $nazwa["extension"]) $dodaj = false; if ($dodaj == true) $typ[] = $nazwa["extension"]; } } $folder->close(); { foreach($pliki as $klucz => $wartosc) if ($wartosc == $typ[$i]) } ?> </body> </html>
Oczywiście ta implementacja jest wielką podstawą i nie posiada zabezpieczeń. Jednak na tym etapie nie mam się na tym skupiać.
Problem polega na tym, że część plików kopiuje się do odpowiedniego katalogu a część nie (przy czym nie wyskakuje żaden komunikat). To samo dzieje się przy pobieraniu pliku (pobieranie poprzez kliknięcie na link pliku) - część wgranych plików można pobrać - pozostałe nie reagują. Gdzie jest błąd?
Proszę o pomoc.