Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Upload plików - resultat pozytywny, ale brak pliku na FTP
Mody23
post 18.02.2012, 14:01:47
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Witam!

Zrobiłem sobie upload plików. Niby wszystko działa jak trzeba, ale pliku w folderze upload na FTP nie ma :/ Co jest nie tak?

  1. <?php
  2. if ( !isset($_POST['wrzucaj']) )
  3. {
  4. $body = '<form enctype="multipart/form-data" action="upload.php" method="POST">
  5. <input name="plik" type="file">
  6. <input type="submit" name="wrzucaj" value="Wgraj">
  7. </form>';
  8. echo $body;
  9. }
  10. else if ( isset($_POST['wrzucaj']) )
  11. {
  12. $u_plik = $_FILES['plik']['tmp_name'];
  13. $u_nazwa = $_FILES['plik']['name'];
  14. $u_rozmiar = $_FILES['plik']['size'];
  15. $u_max_rozmiar = 2*1024*1024; //Maksymalny rozmiar pliku dozwolony do wgrania a bajtach - w przyk?adzie 2MB
  16.  
  17. if($u_rozmiar > $u_max_rozmiar)
  18. {
  19. echo "Plik jest zbyt du?y!";
  20. }
  21. elseif(is_uploaded_file($u_plik))
  22. {
  23. move_uploaded_file($u_plik, "upload/$u_nazwa");
  24. echo "Plik: <b>$u_nazwa</b> ($u_rozmiar B) zosta? uploadowany!";
  25. }
  26.  
  27. }
  28. ?>


Po wrzuceniu pliku dostaję komunikat:

Cytat
Plik: Video call snapshot 31.png (138375 cool.gif zosta? uploadowany!


Co moze powodowac blad?
Go to the top of the page
+Quote Post
nospor
post 18.02.2012, 14:04:55
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wynik pozytywny powiadasz? Nic dziwnego, że pozytywny, jak ty nie sprawdzasz czy się upload powiódł czy nie, tylko zawsze wyswietlasz napis OK.... No jak tak można??

move_uploaded_file() zwraca true albo false. Na tej podstawie masz pisać OK albo NIE OK


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mody23
post 18.02.2012, 14:13:12
Post #3





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


To nic nie daje... sam zobacz, zrobilem sobie warunek, ktory sprawdza czy jest TRUE czy tez FALSE. Otrzymuje TRUE, a pliku na FTP nie ma ;/

  1. <?php
  2. if ( !isset($_POST['wrzucaj']) )
  3. {
  4. $body = '<form enctype="multipart/form-data" action="upload.php" method="POST">
  5. <input name="plik" type="file">
  6. <input type="submit" name="wrzucaj" value="Wgraj">
  7. </form>';
  8. echo $body;
  9. }
  10. else if ( isset($_POST['wrzucaj']) )
  11. {
  12. $u_plik = $_FILES['plik']['tmp_name'];
  13. $u_nazwa = $_FILES['plik']['name'];
  14. $u_rozmiar = $_FILES['plik']['size'];
  15. $u_max_rozmiar = 2*1024*1024; //Maksymalny rozmiar pliku dozwolony do wgrania a bajtach - w przyk?adzie 2MB
  16.  
  17. if($u_rozmiar > $u_max_rozmiar)
  18. {
  19. echo "Plik jest zbyt du?y!";
  20. }
  21. elseif(is_uploaded_file($u_plik))
  22. {
  23. $zauploadowany = move_uploaded_file($u_plik, "upload/$u_nazwa") == TRUE ? 'Tak, zwraca prawde' : 'Nie, cos jest nie tak...';
  24. echo $zauploadowany;
  25. if (move_uploaded_file($u_plik, "upload/$u_nazwa") == TRUE )
  26. {
  27. echo "Plik: <b>$u_nazwa</b> ($u_rozmiar B) zosta? uploadowany!";
  28. }
  29. else
  30. {
  31. echo "Jest blad...";
  32. }
  33. }
  34.  
  35. }
  36. ?>
Go to the top of the page
+Quote Post
nospor
post 18.02.2012, 14:18:19
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To znaczy, że wszystko się powiodło, a ty szukasz tego w złym katalogu smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mody23
post 18.02.2012, 14:22:12
Post #5





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Jeszcze jedno. Chcialbym, aby mozliwe bylo uploadowanie plikow ze wszystkimi rozszerzeniami. I chcialbym aby byla mozliwosc pobierania tych plików. Czyli jeśli ktoś wrzuci plik obraz.png to wygeneruje mu adres: http://mojastrona/upload/obraz.png i chce aby wyświetliło się okno pobierania, a nie obrazek na stronie jak np. tutaj: http://forum.php.pl/style_emoticons/defaul...wheadsmiley.png
Chcialbym aby po wejsciu na mojej stronie w taki link, otworzyło się okno pobierania. Jak to zrobić? Chcialbym aby to bylo z każdym plikiem w kazdym rozszerzeniu (takze .php).
Go to the top of the page
+Quote Post
nospor
post 18.02.2012, 14:24:42
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No przecież możesz tu wrzucać dowolne rozszerzenie. Przecież w tym kodzie nie masz żadnych ograniczeń prócz rozmiaru.

Co do download to:
http://www.php.net/manual/en/function.header.php
Example #1 Download dialog


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mody23
post 18.02.2012, 14:35:31
Post #7





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Cytat(nospor @ 18.02.2012, 14:24:42 ) *
No przecież możesz tu wrzucać dowolne rozszerzenie. Przecież w tym kodzie nie masz żadnych ograniczeń prócz rozmiaru


A co jeśli ktoś wrzuci plik .php i go wykona w przeglądarce? To niebezpieczne, dlatego chce to jakoś zabezpieczyć.

A co do downloadu, to mam tak:

  1. if ( isset($_GET['download']) && intval($_GET['download']) == '2' )
  2. {
  3. header('Content-Disposition: attachment; filename="upload/2.png"');
  4. }


Jednak nic się nie dzieje :/ Dlaczego?
Go to the top of the page
+Quote Post
nospor
post 18.02.2012, 14:38:11
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
A co jeśli ktoś wrzuci plik .php i go wykona w przeglądarce? To niebezpieczne, dlatego chce to jakoś zabezpieczyć.
No to albo chcesz wszystko wrzucać albo nie chcesz... się zdecyduj.

Robisz blokade do tego katalogu, a pliki udostepniasz ludziom przed download - i juz.

Co do kodu download:
no a gdzie zwracasz plik? Nigdzie. W manualu co cie odeslalem przeciez jest tam readfile


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mody23
post 18.02.2012, 14:46:17
Post #9





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Cytat
Robisz blokade do tego katalogu


Jakiś przykład?
Go to the top of the page
+Quote Post
nospor
post 18.02.2012, 14:46:58
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No albo ten katalog dajesz poza katalogiem www, do którego ma dostęp przeglądarka, albo dajesz w nim .htaccess z DENY


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 12:58