ďťż

[php]Wysyłanie pliku na serwer przekazanego metodą $_GET

       

Podstrony


telcocafe

Jak wysłać plik na serwer, który jest przekazany metodą $_GET:
strona.php?plik=c\plik.txt
??



Plikow nie przekazuje sie w tablicy GET. Poczytaj o uploadzie plików (było setki razy)

Wiem, że robi się to za pomocą formularza, ale ja potrzebuję bez wyboru.

No to nie da się tego tak zrobić. Nie można pobrać pliku od usera podajac jego nazwe w Get-cie bo powodowałoby to kradzieze plików.



A jak by było w tablicy zapis, jaki plik jest potrzebny i wtdy zamiast formularza. Potrzebuje tego, bo mam program, który powinien umożliwiać wysyłanie pliku na serwer, ale nie każdemu będzie się chciał wybierać ten plik.

Nie da się. Ciebie nie obchodzi to czy użytkownik bedzie chcial wybrec ten plik. Musi go wybrac i tyle. Serwer php nie moze sie polaczyc z komputerem uzytkownika i wziac sobie od niego plik bo gdyby była to możliwosc to powodowałoby to straszne kradzieze danych rozumiesz?
Tak samo nie mozna dopisac wartości "value" to pola input typu "file" bo wtedy można pokryjomu kraść pliki.
Użytkownik polasek edytował ten post 18 luty 2008, 09:49
Czyli bez formularza nie da się i musi być formularz??

Tak. Musi być odpowiedni formularz.

To zależy od przeglądarki. Możesz napisać jakiś programik, który by to robił. Ale to pewnie za dużo głowienia dla Ciebie :-)
// Edytowano
@niżej:
Nie jestem programistą, więc nie wiem. (Dlatego nawet ja bym się głowił).
Użytkownik andrzej_aa edytował ten post 19 luty 2008, 14:32
a jak dużo??

Próbując wysyłać plik przez proto HTTP może ci to sprawić o wiele więcej trudności, niż standardowy formularz na WWW, bo dochodzi bawienie się nagłówkami i treścią oraz zmiennymi POST, co od strony typowo-programowej nie jest tak banalne, a wymaga trochękombinacji, jeśli ktoś wcześniej nie poruszał tego tematu. Innym rozwięzaniem byłoby użycie FTPa, co ogromnie ułatwiłoby zadanie.
Tylko pamiętaj, że i tak użytkownik musi odpalić owy program - samo się nic nie robi. No ew. metody zabaw z ActiveX-em, ale jak wiadomo i to nie jest doskonałe :P
Użytkownik DJ_ProG edytował ten post 20 luty 2008, 09:44
Jeśli chcesz wysłać plik na serwer ftp użyj funkcji ftp_put()
<?php $plik = 'plik.txt'; $plik_zdalny = 'readme.txt'; // nawiązanie połączenia $conn_id = ftp_connect($ftp_server); // logowanie $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // przesłanie pliku if (ftp_put($conn_id, $plik_zdalny, $plik, FTP_BINARY)) { echo "Plik $plik został pomyślnie przesłany\n"; } else { echo "Napotkano problemy w czasie przesyłania pliku $plik\n"; } // zamknięcie połączenia ftp_close($conn_id); ?>

W plik lokalny wstaw $_GET
Użytkownik Ghoost edytował ten post 21 luty 2008, 07:52
@up: ty chyba w ogóle nie czytałeś tematu. Aby wysłać przez PHP (niezależnie jak), też trzeba plik wrzucić na serwer...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.