Ahora bien, cambié mi código para mover el archivo una vez subido con move_uploaded_file(), el problema es que:
primero compruebo si ya existe un archivo con ese nombre para sacar sacar un mensaje al usuario, y sino lo subo, lo hago con is_file().
Con los dos codigos sube el archivo el problema es a la hora de identificar si ya existe, si lo hago como lo tenía con cURL is_file() funciona y me detecta si ya existe otro archivo con ese nombre si lo hago con move_uploaded_file no y siempre devuelve false y es que no lo entiendo, la ruta esta bien y es la misma solo modifico la forma de mover el archivo, os muestro los 2 códigos:
1->move_uploaded_file:
Código PHP:
<?
$tmpfile = $_FILES['archivo']['tmp_name'];
$tmpname = $_FILES['archivo']['name'];
//comprobamos si existe o no el directorio y lo creamos
if(!@chdir($directorio)){ mkdir($directorio,0, 0777); }
if (!empty($tmpname))
{
if (is_file($directorio."/".$tmpname))
{
$rpta = "Ya existe un archivo con ese nombre";
}
else
{
if (is_uploaded_file($tmpfile))
{
if(move_uploaded_file($tmpfile, $directorio."/".$tmpname))
{
$rpta = 'Archivo subido correctamente.';
}
}
else
{
$rpta = 'Error al subir el archivo.';
}
}
}
else
{
$rpta = 'Seleccionar un archivo.';
}
}
?>
<script>
alert('<?=$rpta?>');
</script>
2->cURL:
Código PHP:
<?
$tmpfile = $_FILES['archivo']['tmp_name'];
$tmpname = $_FILES['archivo']['name'];
if (!empty($_FILES['archivo']['name']))
{
$ftpuser = "xxxx";
$ftppass = "1234";
if (is_file($directorio."/".$tmpname))
{
$rpta = "Ya existe un archivo con ese nombre";
}
else
{
$ftppath = "/dir1/modulo2/".$directorio."/";
$ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
if ($tmpname != "")
{
$fp = fopen($tmpfile, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ftpurl.$tmpname);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpfile));
curl_setopt($ch, CURLOPT_FTP_USE_EPRT, 1);
curl_setopt($ch, CURLOPT_FTP_CREATE_MISSING_DIRS, 1);
curl_exec($ch);
$error = curl_errno($ch);
curl_close ($ch);
if ($error == 0)
{
$rpta = 'Archivo subido correctamente.';
}
else
{
$rpta = 'Error al subir el archivo.';
}
}
else
{
$rpta = 'Seleccionar un archivo.';
}
}
}
}
?>
<script>
alert('<?=$rpta?>');
</script>
Seguro es una estupidez pero no sé qué ocurre, gracias de antemano