Estoy intentando comprobar si un archivo existe antes de subirlo al servidor mediante la función ftp_put de php
Para ello creo un formulario donde el usuario seleccionará el archivo a subir y luego pulsará aceptar.
Código PHP:
<form action="" method="post" enctype="multipart/form-data" name="form_ftp" id="form_ftp">
<div align="center">
</p>
<table width="763" border="0" align="center">
<tr>
<td width="439" height="37"><div align="right">Archivo
<input name="archivo" type="file" id="archivo" />
</div></td>
<td width="314"><div align="left"><font size="2" face="Verdana, Tahoma, Arial">
<input type="submit" name="Submit" value="Upload" />
</font></div></td>
</tr>
</table>
</form>
Código PHP:
<?php
include('includes/ftpfunc.php'); //Incluye el archivo de funciones
if(!empty($HTTP_POST_FILES["archivo"]))
{
$id_ftp=ConectarFTP();
$ruta=ObtenerRuta();
$file = $HTTP_POST_FILES["archivo"]["tmp_name"];//Es el archivo temporal creado en el hosting
$base_archivo = basename($HTTP_POST_FILES["archivo"]["name"]);
$archivo = $HTTP_POST_FILES["archivo"]["name"];
$dir = $ruta.'/'.$_GET["dir"].'/'.$archivo;
if(file_exists('.'.$dir))
{?>
El fichero ya existe, desea sobreescribirlo <a href="FTPExist.php?dir=<?php echo $dir ?>&file=<?php echo $file?>">SI</a> / <a href="claveftp.php?dir=<?php echo $_GET["dir"] ?>">NO</a>.
<?php
}
else
{
$upload = ftp_put($id_ftp, $dir, $file, FTP_BINARY);
if (!$upload)
{
$status = "Error al guardar: " . $base_archivo;
echo $status;
}
else
{
$status = "Éxito al guardar: " . $base_archivo;
echo $status;
}
}
unset($HTTP_POST_FILES["archivo"]);
ftp_quit($id_ftp);
}
else
{
echo 'ruta donde se subirá el archivo: '.$dir;
}
Imagino que hay alguna solución para poder dejar que el usuario pueda o no sobreescribir el archivo, pero llevo horas buscando por internet y pegándome con el código pero no soy capaz.
Si alquien tiene alguna sujerencia, sería de agradecer.
Muchas gracias foreros del web.