może to Ci pomoże...
U mnie działa:
kod z pliku 'wyslij.php'
<?php
$currFileName = $_SERVER['PHP_SELF']; //wskazuje na plik, z ktorego zostala wywolana
$dirName = 'images/'; //katalog docelowy
include ('FileUpload.php'); //zaladowanie pliku z klasa
$a = new FileUpload; //utworzenie obiektu
if(!isset($_FILES['plik'])){ //czy zostal przeslany plik? echo $a->DrawForm($currFileName).'<br>'; //jesli nie, to pokaz formularz } else {
echo $a->MoveFile($dirName).'<br>'; //jesli tak, to skopiuj plik z temp do kat. docelowego }
echo "<h3><a href='$currFileName'>Powrót</a></h3>"; //powrot do strony wysylania
?>
dalej kod pliku FileUpload.php
<?php
class FileUpload
/*
Klasa do wysyłania plików na serwer BY MIGUR
1. trzeba ją 'zainkludować'
2. metody:
a. DrewForm($filename)
gdzie $filename - nazwa pliku, który ma się otworzyć po wysłaniu pliku z formularza
Metoda rysuje formularz (dokładnie zwraca tekst zawierający kod formularza)
b. MoveFile($uploaddir)
gdzie $uploaddir - nazwa katalogu, do którego ma się zapisać plik
Metoda zwraca tekst informujący o sukcesie lub o błędzie.
*/
{
function FileUpload()
{
}
function DrawForm($filename) //wygeneruj formularz
{
$txt = '
<form name="Wyslij"
enctype = "multipart/form-data"
action = "'.$filename.'"
method = "POST">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<table>
<tr>
<td>Nazwa pliku:</td>
<td>
<input type = "file"
name = "plik"
size = "60">
</td>
<td>
<input type = "submit"
name = "wyslij"
value = "Wyślij plik">
</td>
</tr>
</table>
';
return $txt;
}
function MoveFile($uploaddir) //skopiuj plik z tmp do katalogu $uploaddir
{
$destination = $uploaddir.$_FILES['plik']['name'];
echo 'Wczytuje plik do: <b>'.$destination.'</b><br>'; {
$txt = 'Plik został pomyślnie wczytany'; //Przesylanie OK
} else {
$PlikError = $_FILES['plik']['error']; //Blad
switch ($PlikError)
{
case 1: $errtxt = 'Zbyt duży rozmiar pliku'; break;
case 2: $errtxt = 'Zbyt duży rozmiar pliku'; break;
case 3: $errtxt = 'Plik wysłany tylko częściowo'; break;
case 4: $errtxt = 'Nie wysłano żadnego pliku'; break;
}
$txt = '<span style="color: red"><strong>Błąd wczytywania pliku: </strong>$errtxt </span> ';
}
return $txt;
}
}
?>
Może nie jest to odkrywcze, ale u mnie działa. I lokalnie i na serwerze.
Powodzenia.