Foros del Web » Programando para Internet » PHP »

Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Datos - Duda

Estas en el tema de Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Datos - Duda en el foro de PHP en Foros del Web. HOla.. estoy levantando con un CMS que genere datos a la BD.. los datos de String y demas no tengo dramas.. La verdad que con ...
  #1 (permalink)  
Antiguo 29/08/2010, 16:57
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Datos - Duda

HOla.. estoy levantando con un CMS que genere datos a la BD.. los datos de String y demas no tengo dramas..

La verdad que con las imagenes tampoco tengo drama, pero, ocurre algo que no comprendo..

Cuando a traves de formulario cargo con el campo FILE una imagen, sin problemas va a la BD, tanto la URL y la Imagen fisica va a parar a una carpeta, pero aun asi me genera un error que dice:

Código texto:
Ver original
  1. Notice: Undefined index: fileRec in C:\wamp\www\fausto\admin-fausto\procesar_insert_recomendados.php on line 14
  2.  
  3. Notice: Undefined variable: pFileCtrlName in C:\wamp\www\fausto\co\funciones.php on line 39
  4.  
  5. Notice: Undefined index: in C:\wamp\www\fausto\co\funciones.php on line 39
  6. Los datos se han insertado correctamente

sin embargo, las imagenes igual van a parar a la base de datos, es decir, funciona, pero porque sale ese error, que estaria mal en mi código, pues le doy vueeeeeltas y no hallo el error..

Les dejo mis codigos para que vean si esta correcto y la linea que muestra el error y me den un cable.

ARCHIVO: procesar_insert_recomendados.php
Código PHP:
Ver original
  1. <?php
  2. include('../co/conectame.php');
  3. require_once('../co/funciones.php');
  4.  
  5.  
  6.  
  7.         if(isset($_POST['titulo']))  
  8.     {
  9.          
  10.          
  11.  
  12.          $titulo=$_POST['titulo'];
  13.          $descripcion=$_POST['descripcion'];
  14.          $archivo=$_POST['fileRec'];// esta es la linea del primer error. Sin embargo el campo fileRec, si existe en mi formulario
  15.          
  16.  
  17.          
  18.          $sql = "INSERT INTO recomendados (subTitulo, descripcion) VALUES ('".$titulo."','".$descripcion."')";
  19.          mysql_query($sql,$fausto_conn) or die(mysql_error($fausto_conn));
  20.          $nuevo_id = mysql_insert_id($fausto_conn);
  21.            
  22.              
  23.          $archivo = SubirImagen("fileRec", "../imagenes/recomendados/", "../imagenes/recomendados/thumbs/",("img".$nuevo_id));
  24.          if($archivo!="")
  25.          {
  26.              $sql = "UPDATE recomendados SET foto = '".$archivo."' WHERE idRec = ".$nuevo_id;
  27.              mysql_query($sql,$fausto_conn) or die(mysql_error($fausto_conn));
  28.          }//fin IF carga de imagenes
  29.          
  30.          
  31.          //if para comprobar si se guardaron los datos
  32.          if($sql==true)
  33.             {echo "Los datos se han insertado correctamente";
  34.             }else{
  35.             echo "error al insertar datos";
  36.             }//fin IF reconocimiento de datos
  37.        
  38.      }//fin IF principal
  39.   ?>


ARCHIVO: funciones.php
Código PHP:
Ver original
  1. <?php
  2.     function SubirImagen($pFileControlName, $pDirectorio, $pDirectorioThumbs, $pNombre="")
  3.     {
  4.         //echo $_FILES[$pFileControlName]['type'];
  5.         if(is_uploaded_file($_FILES[$pFileControlName]['tmp_name']))
  6.         {
  7.             $tipos = array("image/gif","image/jpg","image/jpeg","image/pjpeg","image/png","image/x-png");
  8.             if(in_array($_FILES[$pFileControlName]['type'],$tipos))
  9.             {
  10.                 $directorio = $pDirectorio;
  11.                 $directorio_thumbs = $pDirectorioThumbs;
  12.                
  13.                 //datos del arhivo
  14.                 if($pNombre=="")
  15.                 {
  16.                     $archivo = $_FILES[$pFileControlName]['name'];
  17.                 }else{
  18.                     $archivo = $pNombre;
  19.                    
  20.                     switch($_FILES[$pFileControlName]['type'])
  21.                     {
  22.                         case "image/gif":
  23.                             $archivo .= ".gif";
  24.                             break;
  25.                            
  26.                         case "image/jpg":
  27.                         case "image/jpeg":
  28.                         case "image/pjpeg":
  29.                             $archivo .= ".jpg";
  30.                             break;
  31.                            
  32.                         case "image/png":
  33.                         case "image/x-png":
  34.                             $archivo .= ".png";
  35.                             break;
  36.                     }  
  37.                 }
  38.                
  39.  
  40.  
  41.                 $tmp_name = $_FILES[$pFileCtrlName]['tmp_name']; //esta es la linea 39 del error.. ni idea porque
  42.  
  43.  
  44.                 $tipo_archivo = $_FILES[$pFileControlName]['type'];
  45.                 $tamano_archivo = $_FILES[$pFileControlName]['size'];
  46.            
  47.                 //compruebo si las características del archivo son las que deseo
  48.                 if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "png")) && ($tamano_archivo < 500000)))
  49.                 {
  50.                     $mensaje= '<script language="javascript" type="text/javascript">alert("No se guardó la imagen por que excede los 500 kb o la extensión no esta permitida");</script>';
  51.                     echo $mensaje;
  52.                 }
  53.                 else
  54.                 {
  55.                     if (move_uploaded_file($_FILES[$pFileControlName]['tmp_name'], $pDirectorio.$archivo))
  56.                     {
  57.                         return $archivo;
  58.                     }
  59.                 }
  60.             }
  61.         }
  62.         return "";
  63.     }
  64. ?>

Gracias, solo necesito orientacion si esta correcto esta manera de levantar las imagenes, y del porque puede dar un error...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #2 (permalink)  
Antiguo 29/08/2010, 17:55
 
Fecha de Ingreso: enero-2010
Mensajes: 113
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Dato

Haber mira, el error de la linea 39 esta aqui:

en ningun momento defines la variable:

Código PHP:
Ver original
  1. $pFileCtrlName

seguramente quieres decir:

Código PHP:
Ver original
  1. $pFileControlName

el otro error muestra el codigo de tu formulario para ver si puedo ayudarte.
  #3 (permalink)  
Antiguo 29/08/2010, 19:56
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Dato

gracias.. era eso.. es que de tanto escribir y editar, y demas, se pasan esas pequeñas cosas, y como tengo el filtro de "LO HICE BIEN, ESTOY SEGURO", cuestan ver los errores.. gracias por iluminarme amigo, vale un Karma
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 01/09/2010, 09:33
 
Fecha de Ingreso: enero-2010
Mensajes: 113
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Guardar imagen en carpeta a la vez que se guarda su URL en la Base de Dato

de nada :)

Etiquetas: url, carpetas
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 14:01.