<?php class pliki { /*$_FILES['plik']['name'] $_FILES['plik']['type'] $_FILES['plik']['size'] $_FILES['plik']['tmp_name'] $_FILES['plik']['error']*/ function kopiuj_plik($sciezka) { if(!$_FILES['plik']['error']) { { { { } else { } } else { } } else { } } else { switch($_FILES['plik']['error']) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; default: } } } } $zdjecie = new pliki; { $zdjecie -> kopiuj_plik("./"); } <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <input type="submit" value="Dodaj plik" /></form>"; ?>
Prosty skrypt do przesyłania plików na serwer.
Problem jest następujący. I wcześniej sie pomylilem bo wystepuje on nie tylko w firefoxie ale takze w internet explorerze
1. Wybieram plik do przesłania (plik nowy - którego nigdy wczesniej nie przesyłałem).
2. Skrypt przebiega prawidłowo funkcje is_uploaded_file() i move_uploaded_file() nie zwracają błędu.
3. Błąd zwraca ostatnia funkcja file_exists() która teoretycznie poprawnie przesłanego pliku nie
znajduje na serwerze.
4. Jeśli po powyzszym błędzie klikne na "odświerz" i ponownie wysle dane z formularza (jakiś plik) to plik ten zostaje porawnie dodany. Bez żadnych błędów!.
I tak sie dzieje z każdym kolejnym plikiem którego wcześniej nie przesyłałem.
Natomiast jeśli skasuje z serwera któryś z wcześniej wysłanych za pomocą tego skrypty plików i wyśle go ponownie plik ten dodaje się za pierwszym razem. Bez konieczności odświeżania strony.
Dlaczego?
Jeszcze coś dodam. Zauwazylem ze dzieje sie tak tylko u mnie na localhoście czyli windows xp 64bit + php 4.3.3 + apache 2