Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Uploading, Nie działa mi uploadowanie plików
temakan
post 26.04.2017, 17:25:46
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. $haha.gif=$_FILES['plik'];
  3. $r=rand(0, 1000);
  4. $k=$haha.gif.$r;
  5. move_uploaded_file($haha.gif,"/bazy/$k");
  6. 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 ) )
  7. ?>

  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
freemp3
post 27.04.2017, 10:26:43
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 wink.gif


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
temakan
post 27.04.2017, 15:00:51
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 wink.gif

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


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 27.04.2017, 21:41:45
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 30.04.2017, 17:05:50
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 1.05.2017, 17:15:25
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 1.05.2017, 21:03:22
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 5.05.2017, 00:00:42
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
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.04.2024 - 21:53