Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] upload + wyświetlanie plików
Forum PHP.pl > Forum > Przedszkole
agataperz
Witam,

mam mały problem - nie chce mi działać.
Możecie mnie naprowadzić gdzie zrobiłam podstawowy błąd - nie chce zapisywac mi na serwerze plików. Katalog ma uprawnienia 777.


  1. echo "<center><form enctype='multipart/form-data' action='admin.php' method='POST'>
  2. <input type=hidden name=MAX_FILE_SIZE value=50000 />
  3. <input type=hidden name=s value=p />
  4. <input type=hidden name=x value=x />
  5. <input name=plik type=file />
  6. <input type=submit value='Wy?lij plik' />
  7. </form><br><br> <b>Pliki na serwerze:</b><br>
  8. ";
  9.  
  10. $directory="foto/";
  11. $dir=opendir($directory);
  12. $files_tab = array(); //deklaracja tablicy przechowuj?cej informacje o wszystkich plikach
  13. while($file_name=readdir($dir))
  14. {
  15. if(($file_name!=".")&&($file_name!=".."))
  16. {
  17. $file_path = $directory.$file_name; //pelna ?cieżka do pliku
  18. $file_tab = array ($file_name, filesize($file_path)); //tablica z informacjami o jednym pliku [0] -> nazwa; [1] -> rozmiar
  19. array_push($files_tab, $file_tab); //doł?czenie tablicy informacji o jednym pliku do tablicy wszystkich plików
  20. }
  21. }
  22.  
  23. closedir($dir);
  24.  
  25. $suma = 0;
  26. for ($i=0; $i<count($files_tab); $i++) {
  27. echo 'nazwa'.$files_tab[$i][0].' '.'rozmiar'.$files_tab[$i][1].'<br/>';
  28. $suma += $files_tab[$i][1];
  29. }
  30. echo $suma;
  31.  
  32. }
  33.  
  34. if ( $x == 'x') {
  35.  
  36.  
  37. $plik_tmp = $_FILES['plik']['tmp_name'];
  38. $plik_nazwa = $_FILES['plik']['name'];
  39. $plik_rozmiar = $_FILES['plik']['size'];
  40.  
  41. if(is_uploaded_file($plik_tmp)) {
  42. move_uploaded_file($plik_tmp, "foto/$plik_nazwa");
  43. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  44. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  45. }
  46.  
  47. }
nospor
Chyba już to przerabialiśmy:
Napisz na czym polega to nie działanie, czym się objawia, co powinno się dziać a się nie dzieje

Zanim odpowiesz, zapoznaj się z tym i zastosuj się do tego"
Temat: Jak poprawnie zada pytanie
kadlub
  1.  
  2. }
  3.  
  4. echo $suma;
  5.  


powinno być chyba

bez tej klamerki
a po drugie gdzie masz przypisanie wartości do zmiennej $x
  1. $x=$_POST['x];


i w tym if skasuj te odstępy ma być tak
if ( $x=='x')
nospor
Cytat
i w tym if skasuj te odstępy ma być tak
if ( $x=='x')
Przecież to bez znaczenia
kadlub
wiem ale źle to wygląda
smile.gif
agataperz
te odstępy $x == 'x' sa bez znaczenia bo warunek działa.

Nie działa zapisywanie pliku na serwerze.

Zrozumiałabym gdyby katalog foto nie miał uprawnień ale ma uprawnienia 777

Nie chodzi mi też o wyświetlanie plików bo ten skrypt działa w 100%
kadlub
a wprowadziłeś te zmiany co napisałem z tą zmienną $x i z tą klamerką?
jak tak to pokarz kod po tych zmianach
nospor
Cytat
wiem ale źle to wygląda
80% tego kodu źle wygląda. Czemu przyczepiłeś się tylko takiej jednej popierdułki? tongue.gif

1) Zastosowałaś sie do linku co ci podałem? Masz tam chociażby napisane jak wyświetlać wszystkie błędy
2) Wprowadziłeś poprawki które podał kadlub?

3) daj print_r($_FILES); - no ale o tym przecież i tak jest mowa w linku co podałem.
kadlub
a diabeł tkwi w szczegółach a że jest namieszane w kodzie to widać
nospor
Akurat w szczegole o którym mowa nic nie tkwi.

1) Nie czepiaj się więc proszę nieistotnych rzeczy - tylko wprowadzasz takim czepianiem o durną spację jakiś zamęt
2) A jak już musisz to czepiaj się wszystkich i zrob posta na dwa ekrany smile.gif
kadlub
ok
agataperz
Panowie,

klamerka musi zostać bo jest warunek ktory przypadniem nie skopiowałam.

Przypominam że tu nie polega problem na klamerkach czy innych pierdołach.
Problem jest taki że nie chce mi zapisać na serwerze.
Warunek if ( $x == 'x') działa bez żadnych zarzutów nie działa mi tylko:

  1. if(is_uploaded_file($plik_tmp)) {
  2. move_uploaded_file($plik_tmp, "foto/$plik_nazwa");
  3. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  4. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  5. }


caly skrypt wyglada tak:


  1. if ($s == 'p' ) {
  2. echo "<center><form enctype='multipart/form-data' action='admin.php' method='POST'>
  3. <input type=hidden name=MAX_FILE_SIZE value=50000 />
  4. <input type=hidden name=s value=p />
  5. <input type=hidden name=x value=x />
  6. <input name=plik type=file />
  7. <input type=submit value='Wyślij plik' />
  8. </form><br><br> <b>Pliki na serwerze:</b><br>
  9. ";
  10.  
  11. $directory="foto/";
  12. $dir=opendir($directory);
  13. $files_tab = array(); //deklaracja tablicy przechowującej informacje o wszystkich plikach
  14. while($file_name=readdir($dir))
  15. {
  16. if(($file_name!=".")&&($file_name!=".."))
  17. {
  18. $file_path = $directory.$file_name; //pelna ścieżka do pliku
  19. $file_tab = array ($file_name, filesize($file_path)); //tablica z informacjami o jednym pliku [0] -> nazwa; [1] -> rozmiar
  20. array_push($files_tab, $file_tab); //dołączenie tablicy informacji o jednym pliku do tablicy wszystkich plików
  21. }
  22. }
  23.  
  24. closedir($dir);
  25. echo "<table><tr><td align=center><b>Nazwa pliku</td><td align=center><b>Rozmiar pliku</td></tr>";
  26. $suma = 0;
  27. for ($i=0; $i<count($files_tab); $i++) {
  28. echo '<tr><td bgcolor=#455175 align=right>'.$files_tab[$i][0].' '.'</td><td bgcolor=#455175 align=right>'.$files_tab[$i][1].'b </td></tr>';
  29. $suma += $files_tab[$i][1];
  30. }
  31.  
  32. echo "<tr><td colspan=2 align=right>$suma</td></tr></table>";
  33.  
  34. }
  35.  
  36. $x = $_POST['x'];
  37.  
  38. if ( $x == 'x') {
  39.  
  40. echo $x;
  41.  
  42. $plik_tmp = $_FILES['plik']['tmp_name'];
  43. $plik_nazwa = $_FILES['plik']['name'];
  44. $plik_rozmiar = $_FILES['plik']['size'];
  45.  
  46. if(is_uploaded_file($plik_tmp)) {
  47. move_uploaded_file($plik_tmp, "foto/$plik_nazwa");
  48. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  49. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  50. }
  51.  
  52. }
nospor
Czemu ignorujesz wskazówki, które dostajesz? Myślisz, że podajemy je dla zabawy bo się nudzimy?!

Cytat
3) daj print_r($_FILES); - no ale o tym przecież i tak jest mowa w linku co podałem.
agataperz
UPS Przepraszam nie zauważyłam tego wiersza
nospor
Ale o tym napisałem ci juz w pierwszym poście.
Wiersz o którym mówisz to już kolejne przypomnienie.

I co się wyświetliło?
agataperz
niestety nie sciagnelo na serwer

komunikat na www wyskoczył:
Array ( )

a wygląda to tak:
  1. $plik_tmp = $_FILES['plik']['tmp_name'];
  2. $plik_nazwa = $_FILES['plik']['name'];
  3. $plik_rozmiar = $_FILES['plik']['size'];
  4.  
  5. if(is_uploaded_file($plik_tmp)) {
  6. move_uploaded_file($plik_tmp, "foto/$plik_nazwa");
  7. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  8. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  9. }
  10. print_r($_FILES);
kadlub

if ($s == 'p' )
jak to jest cały skrypt to ten pierwszy if jest bez sensu bo warunek nigdy nie będzie spełniony
przez co w ogóle nie widać formularza.
rozumiem że chcesz przesyłać jakieś foty to chyba muszą w twoim przypadku mieć mały rozmiar
usuń ten pierwszy warunek i spróbuj przesłać jakiś plik tekstowy z notatnika
agataperz
OK znalazlam błąd.
Skrypty ktore są w/w wymienione to działają.
Sprawdziłam to jak przekopiowałam wszystko do osobnego pliku.
Niestety kłóciły się niektóre skrypty które wcześniej umieściłam.
DZIEKI ZA POMOC. uzmysłowiłam sobie dopiero jak kadlub powiedziales o usunieciu tego pierwszego warunku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.