Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z ftp_put (nie tworzy pliku na serwerze)
dj.bobas
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.06.2008

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


Witajcie, 

na wstępie pragnę zaznaczyć, iż spędziłem sporo czasu używając funkcji 'szukaj', aby znaleźć rozwiązanie mojego problemu.... i nic... 




Problem dotyczy uploadu pliku na serwer. Jest standardowy formularz, za pomocą którego wczytuję plik i chcę go później umieścić w konkretnym katalogu na serwerze. Wiem, że można to zrobić za pomocą move_uploaded_file, sprawdzałem, funkcja nie wyrzuca błędu, ale też nie pokazuje niby utworzonego pliku. 

  1. $wysyl = move_uploaded_file("/home/people/xxxxxxxx/".$plik_tmp,$destination_file2);
  2. if(wysyl)
  3. {
  4. $_SESSION['ftp_upload']="Plik został wysłany na serwer.<br />";
  5. $_SESSION['color2']='green';
  6. $_SESSION['errorMessagePromyk']='Plik: '.$plik_nazwa.' o rozmiarze '.$plik_rozmiar.' bajtów został‚ przesłany na serwer!';
  7. }
  8. else
  9. {
  10. $_SESSION['ftp_upload']="Nie można skopiować pliku na serwer FTP!<br />";
  11. $_SESSION['color2']='red';
  12.   }





Więc spróbowałem przesyłać za pomocą ftp_put, ale problem jest tego typu, że działa łączenie z serwerem, ale nie działa sama funkcja ftp_put (plik napewno jest przesłany, bo sprawdzony metodą is_uploaded_file). Nie wiem, co może być źle... poniżej fragment kodu odpowiedzialnego za tą operację. Liczę na jakiekolwiek sugestie.... 

  1. $destination_file = $plik_nazwa;
  2. $destination_file2 = "/public_html/pliki/$plik_nazwa";
  3. $source_file = realpath($plik_tmp);
  4. echo $destination_file.", ".$destination_file2.", ".$source_file."<br>";
  5. /*
  6. $conn_ftp = ftp_connect(FTP_HOST);
  7. $login_result = ftp_login($conn_ftp, FTP_USER, FTP_PASSWORD);
  8. if ((!$conn_ftp) || (!$login_result))
  9. {
  10. $_SESSION['polacz_serw']="FTP connection has failed!";
  11. $_SESSION['color']='red';
  12. //echo "Attempted to connect to $ftp_server for user $ftp_user_name";
  13. }
  14. else
  15. {
  16. $_SESSION['polacz_serw']="Połączono z serwerem FTP.<br />";
  17. $_SESSION['color']='green';
  18. // ftp_pasv($conn_ftp,true);
  19. $upload = ftp_put($conn_ftp, $destination_file2, $plik_tmp, FTP_BINARY);
  20. if (!$upload)
  21. {
  22. $_SESSION['ftp_upload']="Nie można skopiować pliku na serwer FTP!<br />";
  23. $_SESSION['color2']='red';
  24. }
  25. else
  26. {
  27. $_SESSION['ftp_upload']="Plik został wysłany na serwer.<br />";
  28. $_SESSION['color2']='green';
  29. $_SESSION['errorMessagePromyk']='Plik: '.$plik_nazwa.' o rozmiarze '.$plik_rozmiar.' bajtów został‚ przesłany na serwer!';
  30. }
  31. ftp_close($conn_ftp);
  32. }
  33.  


Co do formatu przesyłu, to próbowałem i z FTP_ASCII i z FTP_BINARY....




Z góry dziękuję za pomoc...

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maxil
post
Post #2





Grupa: Zarejestrowani
Postów: 212
Pomógł: 11
Dołączył: 8.11.2008
Skąd: Sieradz

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


  1. $plik_tmp = $_FILES['plik']['tmp_name'];
  2. $plik_nazwa = $_FILES['plik']['name'];
  3. $plik_rozmiar = $_FILES['plik']['size'];
  4. $katalog = "tutaj/sciezka/gdzie/ma/byc/wgrany/plik";
  5.  
  6. if(is_uploaded_file($plik_tmp)) {
  7. move_uploaded_file($plik_tmp, "$katalog/$plik_nazwa");
  8. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  9. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  10. }
  11. }
  12. else
  13. {
  14. echo "Plik <b>$plik_nazwa</b> nie został wgrany na serwer!";
  15. }


i stosowny do tego formularz

  1. <form action="plik.php" method="post">
  2. <input name="plik" type="file" /><br />
  3. <input type="submit" name="send" value="Wyślij" />
  4. </form>


i całość poskładana może wyglądać tak:

  1. if (isset($_POST['send']))
  2. {
  3. $plik_tmp = $_FILES['plik']['tmp_name'];
  4. $plik_nazwa = $_FILES['plik']['name'];
  5. $plik_rozmiar = $_FILES['plik']['size'];
  6. $katalog = "tutaj/sciezka/gdzie/ma/byc/wgrany/plik";
  7.  
  8. if(is_uploaded_file($plik_tmp)) {
  9. move_uploaded_file($plik_tmp, "$katalog/$plik_nazwa");
  10. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  11. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  12. }
  13. }
  14. else
  15. {
  16. echo "Plik <b>$plik_nazwa</b> nie został wgrany na serwer!";
  17. }
  18. }
  19. else
  20. {
  21. echo '<form action="plik.php" method="post">
  22. <input name="plik" type="file" /><br />
  23. <input type="submit" name="send" value="Wyślij" />
  24. </form>';
  25. }


Ten post edytował maxil 20.12.2009, 00:48:13
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 06:51