Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Uploading, Nie działa mi uploadowanie plików
temakan
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.04.2017

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


Cześć, nie mam pojęcia w ogóle o programowaniu itd. Potrzebuję stronkę, żeby potrzymać tam materiały z lekcji, bo pendrive i logowanie w szkole odpada - keylogery na komputerach.
Zrobiłem już stronkę na hasło (będę mógł sobie zmieniać z telefonu jakby co). I teraz potrzebuje zrobić tam coś by uploadować pliki. Przeczytałem trochę o tym php i zrobiłem takie coś, ale dalej nie działa. (Wszystkie foldery w ftp są 777).
  1. <?php
  2. $(IMG:style_emoticons/default/haha.gif) =$_FILES['plik'];
  3. $r=rand(0, 1000);
  4. print_r($_FILES); // Z TEGO WYSKAKUJE TO: Array ( [plik] => Array ( [name] => Bez tytułu.png [type] => image/png [tmp_name] => /tmp/php8RCUE1 [error] => 0 [size] => 135366 ) )
  5. ?>

  1. <form method="post" action="/folder/upload.php" enctype="multipart/form-data">
  2. <input name="plik" id="plik" type="file">
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
freemp3
post
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


W zmiennej "$xd" zapisujesz tablicę z informacjami o pliku, natomiast funkcja move_uploaded_file oczekuje ścieżki do pliku, który ma przenieść. Zatem powinieneś tam przekazać ścieżkę pliku tymczasowego, która jest pod kluczem "tmp_name".

Druga sprawa to nazwa nowego pliku w zmiennej "$k". Tam powinieneś z kolei użyć wartości, która jest pod kluczem "name".

Oprócz tego popraw ścieżkę do której zapisujesz plik, radził bym użyć czegoś w tym stylu "./bazy/$k". Bez tej kropki na początku funkcja będzie próbowała utworzyć katalog "bazy" w głównym katalogu systemu, a wątpię, żebyś miał do tego uprawnienia (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
temakan
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.04.2017

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


Cytat(freemp3 @ 27.04.2017, 11:26:43 ) *
W zmiennej "$xd" zapisujesz tablicę z informacjami o pliku, natomiast funkcja move_uploaded_file oczekuje ścieżki do pliku, który ma przenieść. Zatem powinieneś tam przekazać ścieżkę pliku tymczasowego, która jest pod kluczem "tmp_name".

Druga sprawa to nazwa nowego pliku w zmiennej "$k". Tam powinieneś z kolei użyć wartości, która jest pod kluczem "name".

Oprócz tego popraw ścieżkę do której zapisujesz plik, radził bym użyć czegoś w tym stylu "./bazy/$k". Bez tej kropki na początku funkcja będzie próbowała utworzyć katalog "bazy" w głównym katalogu systemu, a wątpię, żebyś miał do tego uprawnienia (IMG:style_emoticons/default/wink.gif)

  1. <?php
  2. $(IMG:style_emoticons/default/haha.gif) =$_FILES['plik']["tmp_name"];
  3. $r=rand(0, 1000); //zbedne narazie
  4. $k=basename($_FILES["plik"]["name"]);
  5. print_r($_FILES);
  6. ?>


W takim razie zrobiłem tak i nie działa dalej. Wyskakuje taka sama tablica.

Ten post edytował temakan 27.04.2017, 15:01:29
Go to the top of the page
+Quote Post
bostaf
post
Post #4





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


A spróbuj zamiast "./bazy/" podać całkowita bezwzględną ścieżkę docelową, np.: "/home/moj_id/bazy/"

Względna ścieżka "./bazy" ustawiana jest według aktualnego folderu roboczego php, i zamiast tam gdzie chcesz, czyli w "/home/moj_id/bazy/" plik może lądować w "/var/www/html/bazy" albo jeszcze gdzieś indziej.
Go to the top of the page
+Quote Post
temakan
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.04.2017

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


Cytat(bostaf @ 27.04.2017, 22:41:45 ) *
A spróbuj zamiast "./bazy/" podać całkowita bezwzględną ścieżkę docelową, np.: "/home/moj_id/bazy/"

Względna ścieżka "./bazy" ustawiana jest według aktualnego folderu roboczego php, i zamiast tam gdzie chcesz, czyli w "/home/moj_id/bazy/" plik może lądować w "/var/www/html/bazy" albo jeszcze gdzieś indziej.

Niestety, wyskakuje taka tablica miałem wcześniej i nie uploaduje się plik.
Go to the top of the page
+Quote Post
bostaf
post
Post #6





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Dodaj na końcu - po print_r - taką linijkę i napisz nam co Ci wyświetla:
Go to the top of the page
+Quote Post
mortus
post
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Skąd wniosek, że plik się nie uploaduje? Tablica $_FILES będzie się zawsze wyświetlać, bo przecież masz to w kodzie zapisane:
  1. print_r($_FILES);

Może Twoje pytanie powinno dotyczyć kwestii dostępu do wgranego pliku?
Go to the top of the page
+Quote Post
Niree
post
Post #8





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


  1. <?php
  2. if(!empty($_FILES['upload']['name']))
  3. {
  4. // Loop through each file
  5. //Get the temp file path
  6. $tmpFilePath = $_FILES['upload']['tmp_name'];
  7.  
  8. //Make sure we have a filepath
  9. if ($tmpFilePath != "")
  10. {
  11. //Setup our new file path
  12. $_FILES["upload"]["name"] = str_replace(array( ' ', 'Ę', 'Ó', 'Ą', 'Ś', 'Ł', 'Ż', 'Ź', 'Ć', 'Ń', 'ę', 'ó', 'ą',
  13. 'ś', 'ł', 'ż', 'ź', 'ć', 'ń' ), array( '_', 'E', 'O', 'A', 'S', 'L', 'Z', 'Z', 'C', 'N', 'e', 'o', 'a',
  14. 's', 'l', 'z', 'z', 'c', 'n' ), $_FILES["upload"]["name"]);
  15. $_FILES["upload"]["name"] = str_replace(array( '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '=', '~',
  16. '`', '"', "'", '<', '>', ',', '?', '/' ), array( '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_',
  17. '_', '_', '_', '_', '_', '_', '_', '_', '_', '_'), $_FILES["upload"]["name"]);
  18.  
  19. $newFilePath = dirname(__FILE__)."/" . $_FILES['upload']['name'];
  20. if(!is_dir(dirname(__FILE__)."/"))
  21. {
  22. mkdir(dirname(__FILE__)."/");
  23. }
  24. //Upload the file into the temp dir
  25. if(move_uploaded_file($tmpFilePath, $newFilePath))
  26. {
  27. echo 'wgrano '.$_FILES['upload']['name'].'</br>';
  28. }
  29. else
  30. {
  31. echo 'nie udało się wgrac pliku';
  32. }
  33. }
  34. }
  35. ?>
  36.  
  37. <form method="post" enctype="multipart/form-data">
  38. <input name="upload" type="file">
  39. </form>


Zapisz jako jeden plik np. index.php, pliki będą się wgrywały do katalogu w jakim jest index.php, prawa 755
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 07:47