Foros del Web » Programando para Internet » PHP »

No me guarda la imagen del formulario

Estas en el tema de No me guarda la imagen del formulario en el foro de PHP en Foros del Web. Hola por primera vez estoy intentando hacer sistema de registros que permita imagen pero no me sube el archivo. Aqui tengo le programa: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 25/11/2012, 14:41
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
No me guarda la imagen del formulario

Hola por primera vez estoy intentando hacer sistema de registros que permita imagen pero no me sube el archivo. Aqui tengo le programa:

Código PHP:
Ver original
  1. if($_POST['hidden_f']){
  2.     if(is_uploaded_file($_FILES['photo']['tmp_name'])){
  3.         //Definir nombres
  4.         $nombre=$_FILES['photo']['name'];
  5.         $nombre=strtolower($nombre);
  6.         $tipo=$_FILES['photo']['type'];
  7.         $tipo=strtolower($tipo);
  8.         $size=$_FILES['photo']['size'];
  9.         $error=$_FILE['photo']['error'];
  10.         $name=$_SESSION['user'].'_'.time().$_FILE['photo']['type'];
  11.         $lugar='photos/';
  12.         //Fin
  13.        
  14.         if(!empty($nombre) && isset($nombre)){
  15.             if($error==0){
  16.                 if(strpos($tipo,'gif') || strpos($tipo,'jpg') || strpos($tipo,'jpeg')){
  17.                     if($size<819200){
  18.                         if(move_uploaded_file($_FILE['photo']['tmp_name'],$lugar.$name)){
  19.                             $contenido.='<font color="green">file subido</font>';
  20.                         }else{
  21.                             $contenido.='mal';
  22.                         }
  23.                     }else{
  24.                         $error_file[]='Archivo demasiado grande.'; 
  25.                     }
  26.                 }else{
  27.                     $error_file[]='Formato malo';  
  28.                 }
  29.             }else{
  30.                 $error_file[]='Error en la subita, intenten con otra.';
  31.             }
  32.         }else{
  33.             $error_file[]='Selexionen una foto.';  
  34.         }
  35.        
  36.     }else{
  37.         $error_file[]='La foto no se subio bien. Prueben con otra.';
  38.     }

Llego en la comprobacion de move_uploaded_file() y me imprime mal.

Tengo creada la carpeta photos.

Ayuden
  #2 (permalink)  
Antiguo 25/11/2012, 20:38
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: No me guarda la imagen del formulario

Buenas!

1ero: Donde utilizas la variable $_FILE debería ser $_FILES

2do: Donde creas el nombre de la imagen $name=$_SESSION['user'].'_'.time().$_FILE['photo']['type']; hay un problema,
$_FILE['photo']['type']; no te devuelve solo la extensión sino además el tipo; ejemplo image/png.
Es esa barra inclinada la que te genera el error. Yo lo probé sacando la extensión de la siguiente manera:
$extension = substr($tipo,strrpos($tipo,"/")+1);
$name=$_SESSION['user'].'_'.time().'.'.$extension;

3ero: Declara la variable $contenido = ''; antes de usarla como $contenido.= porque sino estas usando una variable que no declaraste.

4to: No admitirás las imágenes que sean png?

Saludos!
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 25/11/2012, 23:08
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No me guarda la imagen del formulario

tienes unas variables global: $_FILES, sin la S final, es decir, $_FILE
  #4 (permalink)  
Antiguo 26/11/2012, 00:54
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: No me guarda la imagen del formulario

Cita:
Iniciado por Javier01 Ver Mensaje
Buenas!

1ero: Donde utilizas la variable $_FILE debería ser $_FILES

2do: Donde creas el nombre de la imagen $name=$_SESSION['user'].'_'.time().$_FILE['photo']['type']; hay un problema,
$_FILE['photo']['type']; no te devuelve solo la extensión sino además el tipo; ejemplo image/png.
Es esa barra inclinada la que te genera el error. Yo lo probé sacando la extensión de la siguiente manera:
$extension = substr($tipo,strrpos($tipo,"/")+1);
$name=$_SESSION['user'].'_'.time().'.'.$extension;

3ero: Declara la variable $contenido = ''; antes de usarla como $contenido.= porque sino estas usando una variable que no declaraste.

4to: No admitirás las imágenes que sean png?

Saludos!

Gracias Javier ! que rápido me respondiste

No se porque había puesto $_FILE a todo :D

El contenido lo tengo declarado antes en el codigo
Pero ahora ya me funciona !
Gracias
Saludos

Última edición por patilanz; 26/11/2012 a las 08:39

Etiquetas: formulario, registro, guardar
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 22:18.