2012-09-30 12 views
5

Tengo una muy simple script PHP:¿Cómo publicar un contenido de archivo con wget en una variable de publicación?

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

que estoy tratando de publicar el contenido de un archivo local (Unix) usando wget.

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

parece que se publica pero no se conecta a ningún 'campo'.

¿Cómo puedo hacer eso?

+1

Si usted lee el [Manual] (http://www.gnu.org/software/wget/manual/ html_node/HTTP-Options.html), puede ver que dice que 'wget' no admite la carga de archivos. Use algo más como 'curl' en su lugar. Además '--post-data' y' --post-file' no pueden coexistir. Solo uno de ellos debe ser especificado. –

+0

posible duplicado de [Post request with Wget?] (Http://stackoverflow.com/questions/17699666/post-request-with-wget) – user

Respuesta

7

¿Realmente necesita wget? De hecho, al leer la página man de wget ... wget no puede hacer lo que usted quiere que haga.

Puede utilizar curl

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

obtener el archivo con:

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

right; No pensé en curl ... lo he intentado; pero no parece publicar el archivo. – Disco

+0

¿dónde se publica el contenido del archivo? en una variable de publicación? – Disco

+0

Bueno, miarchivo debe existir en su directorio actual ... si aún cree que no funciona, podría usar 'ngrep' para escuchar la solicitud de red ... ej. ngrep -d lo -c 120 puerto 9000 –

Cuestiones relacionadas