Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Problem z wysłaniem pliku
Forum PHP.pl > Forum > Przedszkole
Darek82
Mam taki skrypt

  1.  
  2. <?php
  3.  
  4. function f_wyslane(){
  5.  
  6.  
  7. if ($_FILES['plikuzytkownika'][error]>0){
  8. echo 'Problem: ';
  9. switch ($_FILES['plikuzytkownika'][error]){
  10. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize';break;
  11. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size';break;
  12. case 3: echo 'Plik wysłany tylko częściowo';break;
  13. case 4: echo 'Nie wysłano żadnego pliku';break;
  14. }
  15. }
  16. // czy plik ma prawidłowy typ MIME?
  17.  
  18. if ($_FILES['plikuzytkownika'][type]!='text/plain'){
  19. echo 'Problem: plik nie zawiera zwykłego tekstu';
  20. }
  21. // umieszczenie pliku w odpowiedniej lokalizacji
  22.  
  23. $lokalizacja='/1/wyslane/'.$_FILES['plikuzytkownika']['name'];
  24.  
  25. if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
  26. {
  27. if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'],$lokalizacja)){
  28. echo 'Problem: Plik nie może być skopiowany do katalogu';
  29. exit;
  30. }
  31. // nie wiem czy nie powinna ta klamra być niżej
  32. }
  33.  
  34. else{
  35. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  36. echo ($_FILES['plikuzytkownika']['name']);
  37. }
  38.  
  39. echo 'Plik wysłany poprawnie';
  40.  
  41. //ponowne sformatowanie zawartości pliku
  42.  
  43. $wp=fopen($lokalizacja, 'r');
  44. $zawartość=fread($wp, filesize($lokalizacja));
  45. fclose($wp);
  46.  
  47. $zawartosc= strip_tags($zawartosc);
  48. $wp=fopen($lokalizacja, 'w');
  49. fwrite($wp, $zawartosc);
  50. fclose($wp);
  51.  
  52. //pokazanie zawartości pliku
  53.  
  54. echo'Podląd zawartości wysłanego pliku:<br><hr>';
  55. echo'$zawartosc';
  56. echo '<br><hr>';
  57.  
  58. }
  59.  
  60. ?>


I po wysłaniu pliku .txt przez formularz html do w/w skryptu miałem komunikat

Warning: move_uploaded_file(/1/wyslane/plik_z_tekstem.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\1\funkcje\f_wyslane.php on line 30

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\phpFAE4.tmp' to '/1/wyslane/plik_z_tekstem.txt' in C:\AppServ\www\1\funkcje\f_wyslane.php on line 30
Problem: Plik nie może być skopiowany do katalogu


Testuje to na APPSERV na komputerze z Windows Vista

Na internecie znalazłem coś o nadaniu uprawnień 777 katalogowi "wyslane" nie wiem jednak jak to zrobić....

kopecsrk
dodaj linijkę po $lokalizacja :

chmod("/1/wyslane/", 0777);
Darek82
Dodałem

  1. .....$lokalizacja='/1/wyslane/'.$_FILES['plikuzytkownika']['name'];
  2. chmod ("/1/wyslane/", 0777);.....


i dodatkowomam jeszcze komunikat

Warning: chmod() [function.chmod]: No error in C:\AppServ\www\1\funkcje\f_wyslane.php on line 27

Znalazłem błąd źle zapisałem ścieżkę $lokalizacja='/1/wyslane/'.$_FILES['plikuzytkownika']['name']; nie dodałem kropek $lokalizacja='../1/wyslane/'.$_FILES['plikuzytkownika']['name'];
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.