Foros del Web » Programando para Internet » PHP »

No puedo guardar archivos.

Estas en el tema de No puedo guardar archivos. en el foro de PHP en Foros del Web. Buenas tardes, ¿ me podrían decir por qué no puedo guardar el archivo que recojo con el 'campo de archivo' en la carpeta que está ...
  #1 (permalink)  
Antiguo 12/01/2010, 08:58
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
No puedo guardar archivos.

Buenas tardes, ¿ me podrían decir por qué no puedo guardar el archivo que recojo con el 'campo de archivo' en la carpeta que está én mi ordenador en c:/prueba ?

El código que uso para ello es:

</head>

<body>
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $_FILES['imagen']['name'];
$tipo_archivo = $_FILES['imagen']['type'];
$tamano_archivo = $_FILES['imagen']['size'];
$ruta="c:\prueba";
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta . $nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>

</body>

Lo extraño es que no me aparece mensaje de error, pero tampoco veo el texto de que el archvo ha sido cargado correctamente.

Lo estoy provando en local y el archivo que quiero guardar en la carpeta "prueba" proviene de mi mismo equipo...lo comento por si tuviera algo que ver.

Ya he cambiado los permisos...pero no me funciona. He provado con copy() y move() y sigo sin poder pasar el archivo.

Muchas gracias.
  #2 (permalink)  
Antiguo 12/01/2010, 09:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: No puedo guardar archivos.

el archivo pesa más de 2MB?, es por defecto el valor de upload_max_filesize en el php.ini y así sea local se ignoran todos los archivos superiores a este parametro
  #3 (permalink)  
Antiguo 12/01/2010, 09:11
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: No puedo guardar archivos.

No, son imagenes jpg con un tamaño de 8 kb como máximo...
  #4 (permalink)  
Antiguo 12/01/2010, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde Configuración a PHP
  #5 (permalink)  
Antiguo 12/01/2010, 10:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: No puedo guardar archivos.

debes escapar:
$ruta="c:\\prueba";
$ruta .'\\'. $nombre_archivo

si no usar:

$ruta="c:/prueba";
$ruta .'/'. $nombre_archivo
  #6 (permalink)  
Antiguo 12/01/2010, 13:08
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: No puedo guardar archivos.

He probado lo que me indicas maycolalvarez y tampoco da resultado.

Cuando uso el formulario y envio un archivo para probarlo no me salen los mensajes de:

- se ha enviado correcto
o
- ha habido un error.

Esto a que se debe ?...la carpeta "prueba" no está en el localhost,¿ tendrá algo que ver esto ?

Muchas gracias.
  #7 (permalink)  
Antiguo 12/01/2010, 13:16
 
Fecha de Ingreso: enero-2008
Mensajes: 97
Antigüedad: 16 años, 3 meses
Puntos: 3
Cita:
Iniciado por clico Ver Mensaje
He probado lo que me indicas maycolalvarez y tampoco da resultado.

Cuando uso el formulario y envio un archivo para probarlo no me salen los mensajes de:

- se ha enviado correcto
o
- ha habido un error.

Esto a que se debe ?...la carpeta "prueba" no está en el localhost,¿ tendrá algo que ver esto ?

Muchas gracias.
Lo más probable es que alguna linea esté jodiendo el script. Prueba a comentar el programa entero, linea por linea, y luego vas descomentando una por una y probando hasta ver cual está fallando.

Además, yo cambiaría
$ruta="c:\prueba"; por
$ruta="c:\prueba\";
__________________
www.serieonline.net -> Descarga series y películas o míralas online

Última edición por GatorV; 12/01/2010 a las 14:20
  #8 (permalink)  
Antiguo 12/01/2010, 13:50
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: No puedo guardar archivos.

Tampoco como dices Neojordan. Ya no se que hacer la verdad.
Llevo una semana leyendo y consultando foros y nada.

¿ creees que puede ser problema de permisos de escritura en la carpeta ?

Yo lo que he hecho para darle permisos es entrar en 'propiedades' ...luego 'compartir' y después 'permisos'...¿ es así como se hace ?
  #9 (permalink)  
Antiguo 12/01/2010, 13:56
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: No puedo guardar archivos.

ni idea de que decirte, ni siquiera en windows hay que darle permisos porque dependiendo la versión ni los toma en cuenta, es mejor que hagas la prueba en Unix o GNU/Linux que si ofrecen una prueba eficiente, si no puedes probar un servidor o no lo puedes instalar en tu ordenador te recomiendo VirtualBox de Sun que te permite instalar un OS como aquellos de modo virtual sin tener que formatear tu maquina ni nada.
  #10 (permalink)  
Antiguo 12/01/2010, 14:10
 
Fecha de Ingreso: enero-2010
Ubicación: Guadalajara, Jalisco
Mensajes: 12
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: No puedo guardar archivos.

Que tal... yo te recomiendo agregar al inicio lo siguiente

Código PHP:
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE); 
Con esto te debe mostrar cualquier error de procesamiento... Otra cosa es cambia las diagonales invertidas (\) por diagonales "normales" (/) en la ruta de archivos, tal vez ahi este el problema. Sino aqui te pongo un ejemplo probado ya por mi

archi = nombre del campo

Código PHP:
    $dirimagenes "directorio_donde_se_guardara/";
    if (
is_uploaded_file($_FILES['archi']['tmp_name'])) //Verificamos que se haya subido a su ubicacion temporal
    
{
        
$extension end(explode('.'$_FILES['archi']['name'])); //Sacamos la extension del archivo
        
$imgFile "nombre_a_asignar.".strtolower($extension); //Definimos el nombre que queremos dar al archivo concatenando la extension en minusculas para estandarizar
           
$tmp_name $_FILES['archi']['tmp_name'];
        
$tipo_archivo $_FILES['archi']['type'];
        if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo,"jpg")) ))//Si el archivo NO es gif, jpeg o jpg indicamos error
            
echo "No se puede subir este archivo.";
        else 
//Si es del tipo permitido
            
if(move_uploaded_file($tmp_name$dirimagenes.$imgFile)) //Verificamos que se haya movido correctamente a su ubicación final
                
echo "Imagen agregada con &eacute;xito.";
            else
                echo 
"Ocurri&oacute; un error, al mover el archivo.";
    }
    else
        echo 
"No se pudo subir el archivo."
  #11 (permalink)  
Antiguo 13/01/2010, 00:33
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: No puedo guardar archivos.

Hola Ju4nCh1t0,

he probado el código que me enviaste y cuando llamo(action)desde la página del formulario a la página donde he pegado tu código la pantalla se queda en blanco.

No me aparecen ni siquiera los mensajes de verificación o de error.

He probado lo de las barras que me dijiste y tampoco.

De todas formas muchas gracias. Si se te ocurre algo me comentas.

Un saludo.
  #12 (permalink)  
Antiguo 13/01/2010, 06:26
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: No puedo guardar archivos.

Bueno y el código html como lo tienes? El form donde intentas subir el archivo?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #13 (permalink)  
Antiguo 13/01/2010, 07:26
 
Fecha de Ingreso: enero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: No puedo guardar archivos.

Hola Carxl,

el código para el formulario es el siguiente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulario</title>

</head>

<body>
<?

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

?>



<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="sube_upload.php">
<p>fotos
<input name="imagen" type="file" id="imagen" />
</p>
<p>&nbsp;</p>
<p>
<input type="submit" name="Submit" value="Enviar" />
</p>


</form>

</body>

</html>


Un saludo.
  #14 (permalink)  
Antiguo 13/01/2010, 16:50
 
Fecha de Ingreso: enero-2010
Ubicación: Guadalajara, Jalisco
Mensajes: 12
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: No puedo guardar archivos.

Ok mira, la voy a poner bien facil....

Este es el formulario que yo uso....

Código PHP:
<form action="modprin.php" method="post" enctype="multipart/form-data">
    <
label>Selecciona tu nueva fotograf&iacute;a
        <
input type="file" name="archi" />
    </
label><br /><br />
    <
input type="submit" name="enviar" value="Enviar" />
</
form
Y exactamente asi es como proceso lo que envié

Código PHP:
$dirimagenes "fotos_alumnos/";
if (
is_uploaded_file($_FILES['archi']['tmp_name'])) 
{
    
$extension end(explode('.'$_FILES['archi']['name']));
    
$imgFile $_SESSION['uni_plat_usuario'].".".strtolower($extension);
    
$tmp_name $_FILES['archi']['tmp_name'];
    
$tipo_archivo $_FILES['archi']['type']; 
    if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo,"jpg"))))
            echo 
"No se puede subir este archivo.";
    else
            if(
move_uploaded_file($tmp_name$dirimagenes.$imgFile))
            echo 
"Imagen agregada con &eacute;xito.";
        else
            echo 
"Ocurri&oacute; un error, por favor intenta de nuevo.";
}
else
    echo 
"No se pudo subir el archivo"

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.