Gente, tengo un problema con esta función. Hago pruebas en local de subir imágenes a la web. Tengo instalado Xampp para realizar dichas pruebas.
Cuando se envía por un "form" la imagen, solo funciona si la misma está dentro de los directorios del servidor. Si está en cualquier parte del disco C no la sube.
Lo que he notado haciendo un par de prints, es que si selecciono una imagen que este fuera del servidor (siempre hablando en local), lo único que queda en la variable $_FILES es el [name]. Después esta todo en blanco. Cuando digo todo me refiero al [type], [size] (me arroja tamaño 0) y el [tmp_name]. Este ultimo es el necesario para usar la función move_upload_file.
Copio el código html y php. Espero puedan ayudarme.
Código:
<form enctype="multipart/form-data" method="POST" action="enviarNovedad.php">
<p><input type="hidden" name="MAX_FILE_SIZE" value="300000">
<b>Foto portada:</b></br><input type="file" name="userfile" id="Foto" value="Subir foto" /></p>
<p><input type="submit" value="Enviar"/>
<input type="reset" value="Restablecer"/></p>
</form>
Código PHP:
$text= $_FILES['userfile'] ['name'];
$tipo= $_FILES['userfile']['type'];
$tamano= $_FILES['userfile']['size'];
$dir= $_FILES['userfile']['tmp_name'];
$serv = $_SERVER['DOCUMENT_ROOT'].'/images/jugadores';
$ruta = $serv.$idJ; //idJ es un numero. Quedaria el directorio por ej $_SERVER['DOCUMENT_ROOT'].'/images/jugadores/1
if(!file_exists($ruta))
{
if(!mkdir($ruta, 0777)){
die('Fallo al crear carpeta del jugador');
}
}
move_uploaded_file ($dir, $ruta.'/'.$text);