Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wysyłanie plików na serwer
Forum PHP.pl > Forum > Przedszkole
frytek
witam, jestem zielony jeśli chodzi o php, mam takie pytanie jak można wysłać plik na serwer bez używania formularza ?

mam taki skrypt

  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  5. transitional.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  9. <title>Upload</title>
  10. </head>
  11. <body>
  12.  
  13. <div>
  14. <form enctype="multipart/form-data" action="index.php" method="POST">
  15. <input type="hidden" name="MAX_FILE_SIZE" value="3072000" />
  16. <input name="plik" type="file" />
  17. <input type="submit" value="Wyślij plik" />
  18. </form>
  19. </div>
  20.  
  21. <?php
  22. $plik_tmp = $_FILES['plik']['tmp_name'];
  23. $plik_nazwa = $_FILES['plik']['name'];
  24. $plik_rozmiar = $_FILES['plik']['size'];
  25.  
  26. if(is_uploaded_file($plik_tmp)) {
  27. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  28. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  29. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  30. }
  31. ?>
  32. </body>
  33. </html>


I chciałbym aby mój plik do wysyłania był wczytywany z zmiennej a ta zmienna by miała lokalizacje pliku np. $lol=C:/cos.txt Da się jakoś to zrobić ? z góry dzięki
ciekawskiii
Nie bardzo rozumuje co chcesz;)
d3ut3r
jedyną możliwością na wgranie pliku z dysku jest wskazanie lokalizacji pliku przez użytkownika. Nie możesz zażądać pobrania pliku z określonej przez Ciebie ścieżki to użytkownik musi decydować jaki chce wysłać plik, jeżeli byłoby inaczej strony internetowe masowo kradły by nam pliki z hasłami smile.gif. O ile pytanie dotyczyło tego problemu smile.gif
frytek
ok znalazłem inny sposób i pojawił się nowy problem, więc korzystam teraz z takiego skryptu

  1. <?php
  2. // ustaw podstawowe połączenie
  3. $ftp_server="ftp.boo.pl";
  4. $ftp_user_name="tajne";
  5. $ftp_user_pass="tajne";
  6. $plik_docelowy="public_html/up/lol/lol222.bin";
  7. $plik_zrodlowy="c:/lol.txt";
  8. $conn_id = ftp_connect($ftp_server);
  9.  
  10. // zaloguj się nazwą użytkownika i hasłem
  11.  
  12. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  13.  
  14. // sprawdź połączenie
  15. if ((!$conn_id) || (!$login_result)) {
  16. echo "Połączenie FTP się nie powiodło!";
  17. echo "Próbowano połączyć się do $ftp_server jako użytkownik"
  18. . $ftp_user_name;
  19. } else {
  20. echo "Połączony z $ftp_server jako użytkownik $ftp_user_name";
  21. }
  22.  
  23. // prześlij plik
  24. $upload = ftp_put($conn_id, $plik_docelowy, $plik_zrodlowy, FTP_BINARY);
  25.  
  26. // sprawdź stan operacji
  27. if (!$upload) {
  28. echo "Wstawienie pliku przez FTP się nie powiodło!";
  29. } else {
  30. echo "Przesłano $plik_zrodlowy na $ftp_server jako $plik_docelowy";
  31. }
  32.  
  33. // zamknij strumień FTP
  34. ftp_close($conn_id);
  35. ?>


$plik_zrodlowy="c:/lol.txt"; - i jeśli wrzucę do tego samego katalogu co jest skrypt plik "lol.txt" i $plik_zrodlowy="lol.txt"; to wszystko gra ale jeśli chcę dać jakąś lokalizacje z dysku to nie chcę się wysłać np. C:/lol.txt lub C:\lol.txt czy nawet C:lol.txt - w żadny sposób nie chcę się wysłać
Hekko
Bo tak się nie da odczytać z dysku. W taki sposób można by kopiować pliki bez wiedzy użytkowników stron;)
frantic09
Możesz próbować podawać ścieżki w inny sposób. Ty podajesz w sposób bezpośredni, zaczynając od C:/

Możesz schodzić "w górę" katalogami i zapisać to tak:
../../plik.txt

Poczytaj też o funkcji

którą sprawdzisz czy plik istnieje, a jak nie to szukasz w innych katalogach tongue.gif
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.