Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/02/2007, 10:56
Avatar de irenuska**
irenuska**
 
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Subir archivos a la web

Hola de nuevo, parece que con esto no avanzo.

Haciéndolo con la corrección de LUz, me funciona a la perfección. El fichero se me guarda en el directorio que le pongo.

Peroooo, ahora tengo otro problema. El caso, es que me gustaría sustituir todo ese código, por una llamada a una función. Y dentro de esta función he metido este código que ya me funcionaba. Lo que pasa es que ahora no me sube el fichero.

El código que tengo es:

Script con el formulario y que llama a la función:

Cita:
<?php
/* Prueba para subir archivos a una carpeta del servidor*/

//se incluye el fichero de la libreria donde están las funciones que se utilizan
require ('libreria/varios/var_funciones_archivos.php');

if (isset($_POST['Enviar']))
{
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

$path = './home/ficheros/';
var_guardar_archivo_en_diretorio($path);
}
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar" name="Enviar">
</form>
</body>
</html>
y la función tiene el siguiente código:

Código PHP:
function var_guardar_archivo_en_diretorio($path)
{
    
//datos del arhivo
    
$nombre_archivo $_FILES['userfile']['name'];
    echo 
'Nombre archivo: '.$nombre_archivo;
    
$tipo_archivo $_FILES['userfile']['type'];
    
$tamano_archivo $_FILES['userfile']['size'];
    
//path
    //$path = './home/ficheros/';
    //Se comprueba si las características del archivo son las que se desean
    //El archivo que se sube no puede tener estas extensiones
    
$extensiones '.php|.html|.exe|.bmp';
    if (
ereg($extensiones,$nombre))
    {
        echo 
"<p>El formato de archivo no es valido, no se permiten archivos en formato html, bmp , php y exe.</p>";
        exit;    
    }
    else
    {    
        
//Se cambia el nombre del archivo
        
$partes pathinfo($nombre_archivo);
        echo 
$partes['dirname'] . "\n"//.
        
echo $partes['basename'] . "\n"//nombre + extension
        
echo $partes['extension']; //extension
        
$partes['name'] = basename($nombre_archivo'.'.$partes['extension']); //solo nombre
        
echo $partes['name']; //solo nombre

        
$nombre_archivo $partes['name'].date("dmyHis").'.'.$partes['extension'];
    
        if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path.$nombre_archivo))
        {
           echo 
"El archivo ha sido cargado correctamente.";
           echo 
'Nombre archivo: '.$nombre_archivo;
        }
        else
        {
           echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
        }
    }

El problema es que los ficheros no se guardan. El move_uploaded_file parece que falla....

Como la función la incluyo con require, ¿el path tiene que ser relativo al script desde el que le llamo verdad???? ¿Alguien ve algo raro????? Ayuda, please!!