2012-09-30 9 views
5

Ho un semplice script php:Come postare un contenuto di file con wget in una variabile post?

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

Sto cercando di inviare il contenuto di un file locale (unix) utilizzando wget.

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

sembra postare ma non si collega a nessun 'campo'.

Come posso farlo?

+1

Se leggete il [Manuale] (http://www.gnu.org/software/wget/manual/ html_node/HTTP-Options.html), puoi vedere che dice che 'wget' non supporta il caricamento di file. Usa invece qualcos'altro come "arricciare". Anche '--post-data' e' --post-file' non possono coesistere. Dovrebbe essere specificato solo uno di essi. –

+0

possibile duplicato di [Invia richiesta con Wget?] (Http://stackoverflow.com/questions/17699666/post-request-with-wget) – user

risposta

7

Hai davvero bisogno di wget? In realtà dopo aver letto la pagina man wget ... wget non può fare quello che vuoi che faccia.

È possibile utilizzare curl

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

ottenere il file con:

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

destra; non pensavo al ricciolo ... ci ho provato; ma non sembra pubblicare il file. – Disco

+0

dove viene pubblicato il contenuto del file? in una variabile post? – Disco

+0

Beh myfile deve esistere nella directory corrente ... se pensi ancora che non funzioni, puoi usare 'ngrep' per ascoltare la richiesta di rete ... es. ngrep -d lo -c 120 port 9000 –

Problemi correlati