Foros del Web » Programando para Internet » PHP »

Problema al guardar imagen

Estas en el tema de Problema al guardar imagen en el foro de PHP en Foros del Web. tengo el siguiente codigo html Cita: <form action="upload.php" enctype="multipart/form-data" method="post"> <input id="imagen" name="imagen" size="30" type="file" /> <input name="submit" type="submit" value="Guardar" /> </form> y el php ...
  #1 (permalink)  
Antiguo 13/08/2011, 20:26
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años, 1 mes
Puntos: 9
Pregunta Problema al guardar imagen

tengo el siguiente codigo html

Cita:
<form action="upload.php" enctype="multipart/form-data" method="post">
<input id="imagen" name="imagen" size="30" type="file" />

<input name="submit" type="submit" value="Guardar" />
</form>

y el php upload.php

Código PHP:
<? 
// iniciamos session
session_start ();

// archivos necesarios
require_once 'admin/config.php';
require_once 
'admin/conexion.php';
require_once 
'admin/esUsuario.php';

// obtengo puntero de conexion con la db
$dbConn conectar();

$usuario $_SESSION['usuario'];

$nombre_carpeta $_SERVER['DOCUMENT_ROOT']."/perfil/avatar/".$usuario."/";
if(!
is_dir($nombre_carpeta)){
@
mkdir($nombre_carpeta0700);
}else{
echo 
"Ya existe ese directorio\n";
}  

$nombre "imagen";
$uploadfile $nombre_carpeta.$_FILES[$nombre]['name'];
if (
move_uploaded_file($_FILES[$nombre]['tmp_name'], $uploadfile)) {
    echo 
"se envio bien";
} else {
    echo 
"no se envio";
}  
?>
El problema es que la carpeta no se crea entonces al guardar la imagen da error, al no existir la carpeta donde se va a guardar
  #2 (permalink)  
Antiguo 13/08/2011, 20:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al guardar imagen

Porque no creas el directorio antes de usar el script, por lo que veo necesita permisos. Cual es el error?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 13/08/2011, 20:42
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema al guardar imagen

el problema es q no muestra error, osea me manda el mensaje de no se envio, y las carpetas las tengo que crear dinamicamente, porque va a depender del usuario que este registrado..
  #4 (permalink)  
Antiguo 13/08/2011, 20:46
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al guardar imagen

Por lo menos quita la arroba @ a ver cual es el error

Código PHP:
Ver original
  1. @mkdir($nombre_carpeta, 0700);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 13/08/2011, 21:29
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema al guardar imagen

perdon la demora.

Me sigue sin mostrar ningun error :S
  #6 (permalink)  
Antiguo 13/08/2011, 21:34
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Problema al guardar imagen

Trata de cambiar el valor de esto por un 'string'
Código PHP:
Ver original
  1. $usuario = $_SESSION['usuario'];

Ya que creo que no se crea tu directorio, ya que usas una session, pero cuando haz confirmado el usuario?
Tal vez esa variable no tiene valor, trata lo que te digo, y nos dices si se crea o no.

Saludos.
__________________
Programador jQuery & PHP
  #7 (permalink)  
Antiguo 13/08/2011, 21:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al guardar imagen

Imposible que no arroje error pero tu error ahora que miro bien el código estas intentando crear 3 directorios, no uno. Agregale el parámetro recursive a mkdir ejemplo:

Código PHP:
Ver original
  1. <?php
  2. // Estructura de carpeta deseada
  3. $estructura = './depth1/depth2/depth3/';
  4.  
  5. // Para crear una estructura anidada se debe especificar el parámetro $recursive
  6. // en mkdir().
  7.  
  8.  
  9. if(!mkdir($estructura, 0, true))
  10. {
  11.     die('Fallo al crear carpetas...');
  12. }
  13.  
  14. // ...
  15. ?>

Prueba así con 0 (cero) o con 0700. O sino crea manualmente perfil y avatar...

Edit: hasle caso a @ZoroRoronoa imprime la sesión que esté todo bien.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 13/08/2011 a las 21:45
  #8 (permalink)  
Antiguo 13/08/2011, 22:44
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema al guardar imagen

Ya funciono, gracias a todos por la muy buena onda y por toda la ayuda que me brindaron ^^

Termino quedando asi el codigo

Cita:
<?
// iniciamos session
session_start ();

// archivos necesarios
require_once 'admin/config.php';
require_once 'admin/conexion.php';
require_once 'admin/esUsuario.php';

// obtengo puntero de conexion con la db
$dbConn = conectar();

$usuario = $_SESSION['usuario'];
$nombre_carpeta = "./usuarios/".$usuario;
echo $nombre_carpeta;
if(!mkdir($nombre_carpeta, 0777, true))
{
echo 'Fallo al crear carpetas...';
}

$nombre = "imagen";
$info = pathinfo($_FILES[$nombre]['name']);
$uploadfile = $nombre_carpeta."/avatar.".$info['extension'];
if (move_uploaded_file($_FILES[$nombre]['tmp_name'], $uploadfile)) {
echo "<img src=".$uploadfile." />";
} else {
echo "mal";
}
?>

Etiquetas: html, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:35.