Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2010, 03:55
angel9484
 
Fecha de Ingreso: mayo-2009
Mensajes: 41
Antigüedad: 15 años
Puntos: 1
Problemas con actualizar un fichero desde un servidor a otro via FTP

Buenas,
Estoy intentando escribir en un FTP desde un servidor diferente.
Servidor uno: http://www.s1.com
Servidor dos: http://www.s2.com
FTP servidor dos (el unico necesario) ftp://usuario%40s2.com:[email protected] (%40 es la arroba ya que el usuario es del tipo [email protected])

tengo en el servidor dos una página web solo html
en el servidor uno tengo una página en php que se dedica a leer el contenido del servidor uno (via ftp, y funciona)
Código PHP:
Ver original
  1. $paginas =  "ftp://usuario%40s2.com:[email protected]/pagina.htm";
  2. $ficheroLectura = fopen($paginas, "r");
  3. $contenido = stream_get_contents($ficheroLectura);
  4. fclose($ficheroLectura);
  5. echo $contenido;

luego tengo un botoncito, que despues de hacer las ediciones oportunas, graba, pero aqui viene el problemón, no me lo hace:
Código PHP:
Ver original
  1. //INTRODUCIMOS DATOS
  2. $paginasEscritura =  "ftp://usuario%40s2.com:[email protected]/pagina.htm";
  3.             $fp = fopen($paginasEscritura,'w+');
  4.             flock($fp, LOCK_EX); // realiza un bloqueo exclusivo
  5.             //ftruncate($fp, 0); // truncar el archivo
  6.             $cosa = fwrite($fp, $_POST['datos']);
  7.             flock($fp, LOCK_UN); // libera el bloqueo
  8.             //$c = stream_context_create(array("ftp" => array("overwrite"=>true)));
  9.             //$cosa = file_put_contents($paginasEscritura, $_POST['datos'],0,$c) or die ("imposible");
  10.             echo "<br/>paginasEscritura: ".$paginasEscritura."<br/>\n";
  11.             echo "<br/>devuelveFILE_PUT: ".$cosa."<br/>\n";
  12.             echo "<br/>dump del fichero: ".var_dump($fp)."<br/>\n";
  13.             fclose($fp);

lo del truncate me salta esto:
[<a href='function.ftruncate'>function.ftruncate</a>]: Can't truncate this stream!

lo del fwrite y demas, no me salta error pero me dice que ha escrito 0 bytes

y si uso el file_put_contents es un poco más explícito y lo que dice directamente es que solo ha escrito 0 de X bytes debido a que pueda no haber espacio suficiente en disco (no muestro los errores tal cual, pero si quereis que los muestre lo hago).

Este script php se ejecuta con ajax, la lectura la hace perfecta, pero la escritura se atasca...

espero podais ayudarme, saludos!