yo uso lo siguiente para subir archivos
Código PHP:
<?php
define("SERVER","servidor");
define("PORT",21);
define("USER","usuario");
define("PASSWORD","contraseña");
define("PASV",true);
if ($_POST['action'] == "upload") {
$id_ftp=ftp_connect(SERVER,PORT);
ftp_login($id_ftp,USER,PASSWORD);
ftp_pasv($id_ftp,MODO);
$upfolder = "carpeta/"
$upfile = $upfolder.preg_replace('/[^a-z0-9_\-\.]/i', '_', $_FILES['archivo']['name']);
if ($_FILES['archivo']['size'] < 500000 AND ($_FILES['archivo']['type'] == "image/gif" OR $_FILES['archivo']['type'] == "image/pjpeg")) {
if (ftp_put($id_ftp,$upfile,$_FILES['archivo']['tmp_name'],FTP_BINARY)) {
header("location:otrapagina.php");
exit;
} else {
echo "No se ha podido subir el archivo";
}
} else {
echo "El archivo no era una imagen o el tamaño excedia la capacidad permitida";
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="POST">
<tr><td>Subir archivo<input type="file" name="archivo" /></td></tr>
<tr><td><input type="submit" value="Subir archivo"></td></tr>
<input type="hidden" name="action" value="upload">
</form>