Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysyłanie pliku na serwer, Skrypt nie działa poprawnie
DerekDX
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


Witam,
mam problem z skryptem wysyłającym plik na serwer a raczej z czescią która nim manipuluje oto on

  1. if ($_FILES['miniaturka']['error'] > 0)
  2. {
  3. echo 'Problem: ';
  4. switch ($_FILES['miniaturka']['error'])
  5. {
  6. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  7. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  8. case 3: echo 'Plik wysłany tylko częściowo'; break;
  9. case 4: echo 'Nie wysłano żadnego pliku'; break;
  10. case 6: echo 'Nie można wysłać pliku: Nie wskazano katalogu tymczasowego.'; break;
  11. case 7: echo 'Wysłane pliku nie powiodło się: Nie zapisano pliku na dysku.'; break;
  12. }
  13. }
  14.  
  15. // czy plik ma prawidłowy typ MIME?
  16.  
  17. if ($_FILES['miniaturka']['type'] != 'image/gif')
  18. {
  19. echo 'Problem: plik nie jest obrazkiem';
  20. }
  21. .
  22. .
  23. .
  24. .
  25. .
  26. .
  27. .
  28. .
  29. .
  30.  
  31. mkdir("../galeria/$id", 0777);
  32. // umieszczenie pliku w pożądanej lokalizacji
  33. $lokalizacja='/galeria/$id/'.$_FILES['miniaturka']['name'];
  34. if (is_uploaded_file($_FILES['miniaturka']['tmp_name']))
  35. {
  36. if (move_uploaded_file($_FILES['miniaturka']['tmp_name'], $lokalizacja))
  37. {
  38.  
  39. }
  40. else
  41. {
  42. echo 'Problem: Plik nie może być skopiowany do katalogu';
  43. exit;
  44. }
  45. }
  46. else
  47. {
  48. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  49. echo $_FILES['miniaturka']['name'];
  50. }


jeżeli chodzi o drzewo katalogow to wyglada ono nastepujaca zaczynajac od katalogu glownego serwer:

/
-1
-administracja-tu znajduje sie skrypt (umieszczony wyżej) odpowiadajacy manipulowanie przesłanymi plikami
-galeria
-1-w tym katalogu tworzone sa foldery ktorych nazwami sa ID
-1
-2
-3
-4- tu powinienen przeslany zostac plik

mam nadzieje ze wystarczajaca przejzyscie to przedstawilem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




OK, ale czy skrypt ma problem z wysłaniem pliku czy przeniesieniem go? Sprawdź może jaki chmod ma tworzony plik.
Go to the top of the page
+Quote Post
DerekDX
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


wlasciwie to trudno stwierdzic. W moim podreczniku do php jest napisane ze plik ktory sie wysyla zostaje wyslany i zapisany w domyslnym katalogu tymczasowym jezeli nic sie z nim nie zrobi (zmieni nazwe,przeniesie) do konca skryptu zostaje on usuniety
Go to the top of the page
+Quote Post
Daiquiri
post
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




A katalog, który tworzysz ma faktycznie chmod 777? Czy jakikolwiek z warunków zwraca Ci błąd?

Ha!
  1. $lokalizacja='/galeria/$id/'.$_FILES['miniaturka']['name'];
  2. //chyba raczej:
  3. $lokalizacja='galeria/'.$id.'/'.$_FILES['miniaturka']['name'];

Zmienna nie jest interpretowana w ''.

Ten post edytował Daiquiri 12.11.2010, 16:34:25
Go to the top of the page
+Quote Post
DerekDX
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


faktycznie katalog tworzony przez ten skrypt nie ma uprawnien 777 tylko 755 ale nie wiem dlaczego przeciez funkcja jest napisana poprawnie

Calość nie generuje zadnego błędu
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


mkdir("../galeria/$id", 0777);
podmien na
mkdir("galeria/$id", 0777);

$lokalizacja='/galeria/$id/'.$_FILES['miniaturka']['name'];
podmien na
$lokalizacja="galeria/$id/".$_FILES['miniaturka']['name']; //pamiętaj jeżeli wpisujesz zmienną to tylko z " nigdy z ' smile.gif
Go to the top of the page
+Quote Post
Daiquiri
post
Post #7





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(DerekDX @ 12.11.2010, 17:09:27 ) *
faktycznie katalog tworzony przez ten skrypt nie ma uprawnien 777 tylko 755
Wyzeruj umask()
Go to the top of the page
+Quote Post
DerekDX
post
Post #8





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


niestety zaden ze sposobów podanych wyżej nie działa skrypt teraz wyglada tak:
  1. require("adm_konfiguracja.php");
  2. if ($_FILES['miniaturka']['error'] > 0)
  3. {
  4. echo 'Problem: ';
  5. switch ($_FILES['miniaturka']['error'])
  6. {
  7. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  8. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  9. case 3: echo 'Plik wysłany tylko częściowo'; break;
  10. case 4: echo 'Nie wysłano żadnego pliku'; break;
  11. case 6: echo 'Nie można wysłać pliku: Nie wskazano katalogu tymczasowego.'; break;
  12. case 7: echo 'Wysłane pliku nie powiodło się: Nie zapisano pliku na dysku.'; break;
  13. }
  14. }
  15.  
  16. // czy plik ma prawidłowy typ MIME?
  17.  
  18. if ($_FILES['miniaturka']['type'] != 'image/gif')
  19. {
  20. echo 'Problem: plik nie jest obrazkiem';
  21. }.
  22. .
  23. .
  24. .
  25. .
  26. .
  27. .
  28. .
  29. .
  30. mkdir("../galeria/modelki/$id", 0777);
  31. // umieszczenie pliku w pożądanej lokalizacji
  32. $lokalizacja="/galeria/modelki/$id/".$_FILES['miniaturka']['name'];
  33. if (is_uploaded_file($_FILES['miniaturka']['tmp_name']))
  34. {
  35. if (move_uploaded_file($_FILES['miniaturka']['tmp_name'], ../$lokalizacja))
  36. {
  37.  
  38. }
  39. else
  40. {
  41. echo 'Problem: Plik nie może być skopiowany do katalogu';
  42. exit;
  43. }
  44. }
  45. else
  46. {
  47. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  48. echo $_FILES['miniaturka']['name'];
  49. }


Niewiem moze jest pboblem z sciazkami do katalogow
  1. /katalog_glowny
  2. /1
  3. /administracja
  4. dodaj.php-skrypt ktory jest zamieszczony wyzej
  5. /galeria
  6. /modelki
  7. /1-katalogi ktore generuje skrypt
  8. /2
  9. /3
  10. plik.gif-plik powinien byc przeniesiony w to miejsce
Go to the top of the page
+Quote Post
CuteOne
post
Post #9





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


na początku skryptu wstaw
error_reporting(E_ALL | E_STRICT);

edit:
if (move_uploaded_file($_FILES['miniaturka']['tmp_name'], ../$lokalizacja))

if (move_uploaded_file($_FILES['miniaturka']['tmp_name'], '../'.$lokalizacja))

Ten post edytował CuteOne 12.11.2010, 18:00:40
Go to the top of the page
+Quote Post
DerekDX
post
Post #10





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


Niestety nadal nie dziala teraz jest tak:
  1. $staryumask = umask(0);
  2. mkdir("../galeria/modelki/$id", 0777);
  3. umask($staryumask);
  4. // umieszczenie pliku w pożądanej lokalizacji
  5. $lokalizacja="/galeria/modelki/$id/".$_FILES['miniaturka']['name'];
  6. if (is_uploaded_file($_FILES['miniaturka']['tmp_name']))
  7. {
  8. if (move_uploaded_file($_FILES['miniaturka']['tmp_name'], '../'.$lokalizacja))
  9. {
  10.  
  11. }
  12. else
  13. {
  14. echo 'Problem: Plik nie może być skopiowany do katalogu';
  15. exit;
  16. }
  17. }
  18. else
  19. {
  20. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  21. echo $_FILES['miniaturka']['name'];
  22. }


umask jest wyzerowany i nadal tworzy katalogi o chmod 755 i przy wykonywaniu skryptu tworzy sie plik $lokalizacja w katalog_glowny/1 który po otworzeniu w notatniku wyswietla "kod" obrazka
Go to the top of the page
+Quote Post
Daiquiri
post
Post #11





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Czyli tworzy Ci katalog w katalog_glowny/1/galeria/modelki/$id/ i przenosi do niego plik?
Go to the top of the page
+Quote Post
DerekDX
post
Post #12





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


tworzy mi katalog o chmod 755 i w katalogu katalog_glowny/1 tworzy sie plik bez rozszezenia o nazwie $lokalizacja a w nim zawarty jest obrazek w formir tekstowej tak jak by otworzyc obrazek w notatniku

w ksiązce do php mam napisane ze jezeli sa jakies problemy z wysylaniem plikow nalezy znalesc plik php.ini i tam ustalic wartosc upload_tmp_dir ale gdzie go mozna znalesc? serwer hostuje nazwa.pl

Ten post edytował DerekDX 12.11.2010, 18:50:22
Go to the top of the page
+Quote Post
Daiquiri
post
Post #13





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Naknociłeś ze zmiennymi, wyświetl sobie np. $_FILES['miniaturka']['name'];
Go to the top of the page
+Quote Post
DerekDX
post
Post #14





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


watrosc zmiennej $_FILES['miniaturka']['name']; to nazwa pliku ktory uploaduje i to sie mi wyswietla
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:49