masterinfo
3.07.2006, 10:00:43
Witam.
Chciałbym wykonać skrypt, który pozwoli mi na upload plików z komputera lokalnego na serwer. Niestety wszystkie rozwiązania znalezione przeze mnie opierają się na formularzu, który przekazuje dane do dalszej części skryptu. Zależy mi na tym, żeby dało się to zrobić pojedynczym skryptem.
Może łatwiej będzie to zobrazować w ten sposób:
jest sobie jakiś skrypt, załóżmy, że ma nazwę upload.php. Wpisuję w pasku przeglądarki np. www.adres.com/upload.php?plik=nazwa_pliku.txt, a wynikiem jest wgranie pliku na serwer.
Tylko tak się teraz zastanawiam, że to chyba nietrafiony pomysł, bo przecież skąd serwer będzie wiedział, gdzie na dysku u mnie znajduje się ten plik...
Może mój problem jest nietypowy, ale potrzebuję skryptu, który może być wywołany przez zewnętrzną aplikację. Można to teoretycznie rozwiązać przez ftp, ale to odpada, bo program ma być "idiotoodporny" i maksymalnie uproszczony w obsłudze, no i nie wiadomo z góry jaki będzie adres serwera ftp, nazwa użytkownika oraz hasło.
Czy ktoś może mi podać jakieś rozwiązanie? Co mogę zrtobić, żeby to tak działało, ewentualnie czego użyć zamiast/z php, w celu osiągnięcia opisanego wyniku?
Bastion
3.07.2006, 10:06:48
Litości

Nie da sie tak, upload za pomoca skryptu php
tylko za pomoca formularza czyli $_FILES
Ludvik
3.07.2006, 10:12:04
Możesz przesłać pliki metodą
PUT protokołu HTTP (nie gwarantuję, że serwer to obsługuje). Możesz też przesłać plik zakodowany
base64_encode" title="Zobacz w manualu php" target="_manual, chociaż nie sądzę, żeby to był najlepszy pomysł. Samo php nie wyciągnie Ci pliku z maszyny klienta. Formularze też można przesłać cURL'em, albo wysyłając ręcznie żądanie POST.
Ja mimo wszystko bym się skłaniał w stronę formularzy i cURL, który jest dostępny jako biblioteka w wielu językach.
masterinfo
3.07.2006, 11:31:25
Cytat(Ludvik @ 3.07.2006, 09:12 )

Formularze też można przesłać cURL'em, albo wysyłając ręcznie żądanie POST.
No to będę musiał spróbować pomęczyć się ręcznie z POSTem, mam nadzieję że coś mi się z tego wykluje

Czy ktoś może mi jeszcze powiedzieć, w jaki sposób do POSTa wcisnąć plik?

Bo jasnym jest dla mnie jak się odwołać do pliku, który już się znalazł na serwerze, ale nie wiem jak zmusić serwer do pobrania go

Wiem, że marudzę, ale jakoś sobie nie radzę
Athlan
3.07.2006, 16:45:57
Eeeee... chłopaki... da się

możesz zrobić tajny formularz z inputami hidden i wtedy używasz przy onload magicznego języka JavaScript

przyda Ci się takie coś:
Kod
<script>
<!--
function kliku-kik()
{
document.kupa.submit(); // czy jakoś tak
}
setTimeout(kupa,0000);
//-->
</script>
<form name="kupa" action="..." enctype="cośtam">
<input type="hidden" name="..." value="...">
</form>
pozdro

Cytat
Czy ktoś może mi jeszcze powiedzieć, w jaki sposób do POSTa wcisnąć plik?

<form action="..." method="post" enctype="multipart/form-data">
kluczem jest enctype="multipart/form-data"
pzdr
Wydaje mi sie że w php też sie da, poczytaj o ftp aby pobrać plik i
fsockopen" title="Zobacz w manualu php" target="_manual oraz pakietach, w których możemy dowolnie umiescic dane POST