Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2010, 02:15
Avatar de altraun
altraun
 
Fecha de Ingreso: abril-2002
Mensajes: 129
Antigüedad: 22 años, 1 mes
Puntos: 0
curl y envio de archivos a servidor remoto en metodo post

buenos dias .

llevo varias semanas dando vueltas e intentando lo siguiente:


quiero subir a megaupload.com un file , por medio de curl desde mi servidor.

con el formulario si lo consigo. pero esto es desde mi maquina local. no un archivo del servidor.

Código PHP:
<form method="post" enctype="multipart/form-data"
action="http://www27.megaupload.com/upload_done.php?UPLOAD_IDENTIFIER=5a157e5fb31b6d11dfaf880c74c29518">
<
input type="hidden" name="UPLOAD_IDENTIFIER" value="5a157e5fb31b6d11dfaf880c74c29518">
<
input type="hidden" name="sessionid" value="5a157e5fb31b6d11dfaf880c74c29518">
<
input type="file" name="file">
<
input type="hidden" name="message" value="testissng">
<
input type="submit" value="submit">
</
form
este formulario consigue enviar un archivo a megaupload.com y este devuelve un script con la url tipica de megaupload.com

algo asi
Código:
<script language="Javascript">
document.domain = 'megaupload.com';
parent.progress = '00:00:00 - 44.79 KB of 44.79 KB';
parent.downloadurl = 'http://www.megaupload.com/?d=NBO7682Z';
parent.uploaddone();
</script>
el problema es que con curl no consigo que me funcione
me pasa la respuesta de megaupload pero no consigue enviar el archivo.


creo que mi problema es que el archivo no se envia como seria el caso cuando lo hacemos por formulario.

lo que uso en curl es
Código PHP:
$postData['UPLOAD_IDENTIFIER'] = "41594851.1121416422"
$postData["sessionid"] = '216392970.3.10.1269506597'
$postData ["sessionID"] = '216392970.3.10.1269506597';
$postData["file"] = $file;
$postData["message"] ='probando';
$postData["accept"]='1';

$ch curl_init(); 
curl_setopt($chCURLOPT_VERBOSE0);
curl_setopt($chCURLOPT_URL"http://www27.megaupload.com/upload_done.php?UPLOAD_IDENTIFIER=216392970.3.10.1269506597");
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS$postData); 

curl_setopt($chCURLOPT_REFERER'');



$response curl_exec($ch);
$response htmlspecialchars($response);
echo 
"<pre>".$response."</pre>";
curl_close($ch);
?> 
lo que creo que esta el fallo es que hay que conseguir por curl que realice la transferencia por metodo enctype="multipart/form-data" pero eso escapa a mi comprension.

alguna idea o ayuda?.