Hola!
Mi problema es el siguiente: Quiero que desde una web, la gente pueda subir a un servidor FTP alojado en otro ordenador (en la empresa) y he conseguido que se me conecte pero no consigo poder subir el archivo.
Un pequeño esquema es: usuario (archivo) -> internet(PHP) -> empresa(FTP)
El error que sale es -> Warning: copy(/Nuevo.zip): failed to open stream: Permission denied in D:\vhosts\dominio\httpdocs\urg\ftpup.php on line 72
Ruta: /Nuevo.zip
Este es el codigo:
// Primero creamos un ID de conexión a nuestro servidor
$cid = ftp_connect("ftp");
// Luego creamos un login al mismo con nuestro usuario y contraseña
$resultado = ftp_login($cid, "log","pass");
// Comprobamos que se creo el Id de conexión y se pudo hacer el login
if ((!$cid) || (!$resultado)) {
echo "Fallo en la conexión"; die;
}
else {
echo "Conectado";
}
// Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al servidor que seremos nosotros quienes comenzaremos la transmisión de datos.
ftp_pasv ($cid, true) ;
echo "<br> Cambio a modo pasivo<br />";
// nombre del archivo
$local = $_FILES["archivo"]["name"];
// Este es el nombre temporal del archivo mientras dura la transmisión
$remoto = $_FILES["archivo"]["tmp_name"];
// El tamaño del archivo
$tama = $_FILES["archivo"]["size"];
echo "subiendo el archivo...<br />";
// Juntamos la ruta del servidor con el nombre real del archivo
$ruta = "/".$local;
// Verificamos si no hemos excedido el tamaño del archivo
if ($tama>=$_POST["MAX_FILE_SIZE"]){
echo "Excede el tamaño del archivo...<br />";
}
else {
// Verificamos si ya se subio el archivo temporal
if (is_uploaded_file($remoto)){
// copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos
copy($remoto, $ruta);
}
// Sino se pudo subir el temporal
else {
echo "no se pudo subir el archivo " . $local;
}
}
echo "Ruta: " . $ruta;
//cerramos la conexiónFTP
ftp_close($cid);
}
else{
echo'ok';
}
Gracias de antemano por la ayuda!