2012-09-30 12 views
5

Mam bardzo prosty skrypt PHP:Jak opublikować zawartość pliku za pomocą wget w zmiennej postu?

<? 
    $received:file = $_POST['file']; 
    // do something with it 
?> 

próbuję pisać zawartość pliku lokalnego (UNIX) przy użyciu wget.

wget --post-data='operation=upload' --post-file myfile 

wydaje się pisać, ale nie dołącza do żadnego "pola".

Jak mogę to zrobić?

+1

Jeśli czytasz [Manual] (http://www.gnu.org/software/wget/manual/ html_node/HTTP-Options.html), możesz zobaczyć, że 'wget' nie obsługuje przesyłania plików. Zamiast tego użyj czegoś innego, jak "curl". Również '--post-data' i' --post-file' nie mogą współistnieć. Tylko jeden z nich powinien być określony. –

+0

możliwy duplikat [Zgłoszenie żądania z Wget?] (Http://stackoverflow.com/questions/17699666/post-request-with-wget) – user

Odpowiedz

7

Czy naprawdę potrzebujesz wget? Właściwie po przeczytaniu strony wget man ... wget nie może zrobić tego, co chcesz.

Można użyć curl

curl -F"operation=upload" -F"[email protected]" http://localhost:9000/index.php 

Pobierz plik z:

<?php 
$uploadfile = '/tmp/' . basename($_FILES['file']['name']); 
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile); 
$content = file_get_contents($uploadfile); 
?> 
+0

right; Nie myślałem o curl ... próbowałem; ale nie wydaje się, aby opublikować plik. – Disco

+0

gdzie jest publikowana zawartość pliku? w zmiennej pocztowej? – Disco

+0

Well myfile musi istnieć w twoim bieżącym katalogu ... jeśli nadal uważasz, że to nie działa, możesz użyć 'ngrep', aby wysłuchać żądania sieci ... np. ngrep -d lo -c 120 port 9000 –

Powiązane problemy