Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zapisywanie na serwer problem
Forum PHP.pl > Forum > Przedszkole
Mastersieciweb
witam, mam w książce skrypt dzięki któremu zapisuje dany plik tekstowy na serwerze w danym katalogu i wyswietlam jego zawartość. Problem polega na tym że plik zostaje zapisany ale bez danych w środku jakie miał. Jak sprawdzam w plikach na serwerze to znajduje się tam przeslany plik tekstowy ale pusty.. dlaczego?.. gdzie tu jest błąd, z góry dzięuje. oto skrypty: html i php:
  1. <html>
  2. <head>
  3. <title>Administracja - wysyłanie nowych plików</title>
  4. </head>
  5. <body>
  6. <h1>Wysyłanie nowych plikow informacyjnych</h1>
  7. <form enctype="multipart/form-data" action="wyslij.php" method="post" />
  8. <div>
  9. <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  10. <label for="plikuzytkownika">Zaladuj ten plik:</label>
  11. <input name="plikuzytkownika" type="file" id="plikuzytkownika" />
  12. <input type="submit" value="Wyslij" />
  13. </div>
  14. </form>
  15. </body>
  16. </html>

  1. <html>
  2. <head>
  3. <title>Wysylanie ... </title>
  4. </head>
  5. <body>
  6. <h1>Wysyłanie pliku ... </h1>
  7. <?php
  8. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  9. // Sprawdzenie, czy przy próbie wysłania pliku wystąpił błąd
  10. if ($_FILES['plikuzytkownika']['error'] > 0)
  11. {
  12. echo 'Problem: ';
  13. switch ($_FILES['plikuzytkownika']['error'])
  14. {
  15. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize';
  16. break;
  17. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size';
  18. break;
  19. case 3: echo 'Plik wysłany tylko częściowo';
  20. break;
  21. case 4: echo 'Nie wysłano żadnego pliku';
  22. break;
  23. case 6: echo 'Nie można wysłać pliku: Nie wskazano katalogu tymczasowego.' ;break;
  24. case 7: echo 'Wysłane pliku nie powiodło się: Nie zapisano pliku na dysku.'; break;
  25. }
  26. }
  27.  
  28. // czy plik ma prawidłowy typ MIME?
  29. if ($_FILES['plikuzytkownika']['type'] != 'text/plain')
  30. {
  31. echo 'Problem : plik nie zawiera zwykłego tekstu';
  32. }
  33. // umieszczenie pliku w pożądanej lokalizacji
  34. $lokalizacja = '$DOCUMENT_ROOT/../wyslane/'.$_FILES['plikuzytkownika']['name'];
  35. if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
  36. {
  37. if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
  38. {
  39. echo 'Problem: Plik nie może być skopiowany do katalogu';
  40. }
  41. }
  42. else
  43. {
  44. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  45. echo $_FILES['plikuzytkownika']['name'];
  46. }
  47. echo 'Plik wysłany<br><br>';
  48.  
  49. // ponowne sformatowanie zawartości pliku
  50. $wp = fopen($lokalizacja, 'r');
  51. $zawartosc = fread ($wp, filesize ($lokalizacja));
  52. fclose ($wp);
  53. $zawartosc = strip_tags($zawartosc);
  54. $wp = fopen($lokalizacja, 'w');
  55. fwrite($wp, $zawartosc);
  56. fclose($wp);
  57. // pokazanie, co zostało wysłane
  58. echo 'Podglad zawartosci wyslanego pliku:<br><hr>';
  59. echo $zawartosc;
  60. echo '<br><hr>';
  61. ?>
  62. </body>
  63. </html>
Kshyhoo
Przenoszę do Przedszkola.
Mastersieciweb
rozumiem, że dla wielu jest to banalnie proste pytanie ale czy mógłby ktoś powiedzieć gdzie tu jest błąd?..
Turson
Sprawdź co siedzi w $zawartosc, np. echo

Na linii 36. podobny problem do Temat: problem z opendir
Mastersieciweb
bo tu wlasnie mam problem z odczytywaniem z serwera.. troche to dziwne bo w poprzednim zadaniu wlasnie z opendir jak podalem zrodlo c:/xyz/xyz/ten plik to go odczytalo z komputera i wyswietlilo jego zawartosc tam ale nie wiem jak podac zrodlo na serwer.. dziwne to jest bo serwer mam na cba.pl i otwieram te pliki oraz tworze w fileZilla.
Turson
  1. $lokalizacja = '$DOCUMENT_ROOT/../wyslane/'.$_FILES['plikuzytkownika']['name'];

a
  1. $lokalizacja = "$DOCUMENT_ROOT/../wyslane/".$_FILES['plikuzytkownika']['name'];

to nie jest to samo
lub nawet można
  1. $lokalizacja = $DOCUMENT_ROOT.'/../wyslane/'.$_FILES['plikuzytkownika']['name'];
Mastersieciweb
Noo i wszystko działa TURSON wielkie dzięki;-) wystarczylo zmienić cudzysłów;) pozdrawiam
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.