Foros del Web » Programando para Internet » PHP »

Problemas con enctype="multipart/form-data" subiendo archivo y guardando nombre en DB

Estas en el tema de Problemas con enctype="multipart/form-data" subiendo archivo y guardando nombre en DB en el foro de PHP en Foros del Web. Estoy teniendo un problema y no puedo darme cuenta que pueda ser. El tema en cuestión es el siguiente: En el código que pego aquí ...
  #1 (permalink)  
Antiguo 27/04/2009, 13:45
Avatar de Funk  
Fecha de Ingreso: septiembre-2003
Ubicación: BA - Argentina
Mensajes: 102
Antigüedad: 20 años, 7 meses
Puntos: 0
Problemas con enctype="multipart/form-data" subiendo archivo y guardando nombre en DB

Estoy teniendo un problema y no puedo darme cuenta que pueda ser. El tema en cuestión es el siguiente:

En el código que pego aquí debajo, podrán apreciar una página que lo que hace es mostrar un form donde cargamos una serie de datos que se guardan en una base de datos hcha en MySQL. Pero algúnos de esos datos son archivos a subir al servidor, por lo cual tiene un campo del tipo "file", y aca es donde está el problema.

Si yo al form le pongo enctype="multipart/form-data" me sube el archivo al server pero no me inserta el nombre en la base de datos. si yo al form le quito enctype="multipart/form-data" me inserta bien el nombre del archivo en la Db pero no me sube el archivo físicio al server.

Si alguien me puede dar una mano con esto porque realmente no encuentro cual pueda ser el error.


Código PHP:
<?php require_once('../Connections/cnx_granalladora.php'); ?>
<?php
// Subimos archivos.
$extension explode(".",$thumbs_name); 
$num count($extension)-1
if(
$extension[$num] == "jpg"

if(
$thumbs_size 120000

if(!
copy($thumbs"../img_noticias/thumbs/".$thumbs_name)) 

echo 
"<font color='#FF0000'>Error al copiar el archivo</font>";

else 

echo 
"<b><font color='#000000'>Archivo subido con éxito</font></b>";





else 



echo 
"<font color='#FF0000'>El archivo supera los 120kb pemitidos</font>";





else 


echo 
"<font color='#333333'>Usted no subi&oacute; ninguna im&aacute;gen en esta casilla &oacute; el formato de archivo no es valido, solo puede ser .jpg</font>"


?>
<?php
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO noticas (titulo, texto, thumbs, pics, visibilidad, pdf) VALUES (%s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['titulo'], "text"),
                       
GetSQLValueString($_POST['texto'], "text"),
                       
GetSQLValueString($_POST['thumbs'], "text"),
                       
GetSQLValueString($_POST['pics'], "text"),
                       
GetSQLValueString($_POST['visibilidad'], "text"),
                       
GetSQLValueString($_POST['pdf'], "text"));

  
mysql_select_db($database_cnx_granalladora$cnx_granalladora);
  
$Result1 mysql_query($insertSQL$cnx_granalladora) or die(mysql_error());

  
$insertGoTo "noticias_a.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}

mysql_select_db($database_cnx_granalladora$cnx_granalladora);
$query_rs_noticia_modf "SELECT * FROM noticas ORDER BY Id_noticia DESC";
$rs_noticia_modf mysql_query($query_rs_noticia_modf$cnx_granalladora) or die(mysql_error());
$row_rs_noticia_modf mysql_fetch_assoc($rs_noticia_modf);
$totalRows_rs_noticia_modf mysql_num_rows($rs_noticia_modf);
?>
Y este es el form en la misma página.

Código HTML:
<form method="post" name="form1" enctype="multipart/form-data" action="<?php echo $editFormAction; ?>">
            <table align="center">
              <tr valign="baseline">
                <td nowrap align="right">Titulo:</td>
                <td><input type="text" name="titulo" value="" size="32"></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right" valign="top">Texto:</td>
                <td><textarea name="texto" cols="50" rows="5"></textarea> </td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right"><p>Foto Chica :</p>
                  </td>
                <td><input type='file' name="thumbs" value="" size="32"></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">Foto Grande :</td>
                <td><input type="file" name="pics" value="" size="32"></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">Visibilidad:</td>
                <td><select name="visibilidad">
                  <option value="si" selected>Si</option>
                  <option value="no">No</option>
                  </select> </td>
              <tr>
              <tr valign="baseline">
                <td nowrap align="right">PDF:</td>
                <td><input type="file" name="pdf" value="" size="32"></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">&nbsp;</td>
                <td><input type="submit" value="Insertar registro"></td>
              </tr>
            </table>
            <input type="hidden" name="MM_insert" value="form1">
          </form> 

Muchas gracias por la ayuda y el tiempo dedicado!!
__________________
Walter Bove
Diseñador Multimedial
Arteuz Comunicación Multimedial
Funk Blog Job
  #2 (permalink)  
Antiguo 27/04/2009, 14:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n

a caray!!

¿seguro que ya has leído antes el manual de PHP??


digo, no veo en ninguna parte de tu código que uses....

move_uploaded_file()

ni siquiera la variable $_FILES, que es para subir archivos precisamente...

(ademas me parece que estas usando register_globals, y eso esta muuy mal...)


¿¿pues de donde has estado aprendiendo???

por favor, lee bien como hacer un upload primero.... y luego, ya sabes...

Envío de archivos...


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/04/2009, 14:25
Avatar de Funk  
Fecha de Ingreso: septiembre-2003
Ubicación: BA - Argentina
Mensajes: 102
Antigüedad: 20 años, 7 meses
Puntos: 0
Bueno voy a leer ese link que me pasaste

Gracias!

Después de mucho leer y ver en el FAQ del foro llegue a este código que si bien me funciona porque sube los archivos sin problemas, en la DB me guarda una ruta temporal del tipo /temp/phpYhaseR que no me sirve de nada, yo necesito que en la DB me guarde solo el nombre del archivo que subí.

Alguna ayuda?

Muchas Gracias

Código PHP:
<?php  
    $nombre_archivo 
$_FILES["thumbs"]["name"]; 
    
$nom_img$nombre_archivo
    
$directorio '../img_noticias/thumbs/';
    if (
move_uploaded_file($_FILES['thumbs']['tmp_name'],$directorio "/" $nom_img))
    { 
        
//NOS CONECTAMOS A LA BASE DE DATOS

        
$link=mysql_connect($server,$dbuser,$dbpass);
                        
        
$query="INSERT INTO noticas (titulo, texto, thumbs, pics, visibilidad, pdf) VALUES ('$titulo','$texto','$thumbs','$pics','$visibilidad','$pdf')"

        
$result=mysql_db_query($database,$query,$link);
        
        if(
mysql_affected_rows($link))
        { 
            echo 
"Noticia ingresada correctamente"
            
        } else 
        { 
            echo 
"Error introduciendo la Noticia"
        } 
/* Cierre del else */ 
    
}
    else
    {
        echo 
"error al subir la foto";
    }
?>
__________________
Walter Bove
Diseñador Multimedial
Arteuz Comunicación Multimedial
Funk Blog Job

Última edición por GatorV; 28/04/2009 a las 12:13
  #4 (permalink)  
Antiguo 28/04/2009, 11:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n



pues debes usar $nom_img ¿no crees??

además... ¿$pics y $thumbs que son y de donde vienen??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/04/2009, 12:00
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n

si le haces echo a esto
$nombre_archivo
q te sale??
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #6 (permalink)  
Antiguo 28/04/2009, 12:20
Avatar de Funk  
Fecha de Ingreso: septiembre-2003
Ubicación: BA - Argentina
Mensajes: 102
Antigüedad: 20 años, 7 meses
Puntos: 0
El $nom_img está. $thumbs es el file del form donde cargo la imagen, $pics es otro campo que no tiene importancia.

Lo podés ver en el formulario debajo de todo.

Gracias

Me muestra el nombre del archivo subido.
__________________
Walter Bove
Diseñador Multimedial
Arteuz Comunicación Multimedial
Funk Blog Job

Última edición por GatorV; 28/04/2009 a las 13:55
  #7 (permalink)  
Antiguo 28/04/2009, 12:30
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n

y que no es eso lo que quieres guardar en la BD??
por q no metes ese registro?

Cita:
yo necesito que en la DB me guarde solo el nombre del archivo que subí.
saludines!!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #8 (permalink)  
Antiguo 28/04/2009, 12:49
Avatar de Funk  
Fecha de Ingreso: septiembre-2003
Ubicación: BA - Argentina
Mensajes: 102
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n

Ahora esta perfecto!!, muchas gracias

Y voy por más, ahora tengo que hacer que desde ese form que tiene tres campos file, suba los tres archivos seleccionados a tres directorios diferentes.
__________________
Walter Bove
Diseñador Multimedial
Arteuz Comunicación Multimedial
Funk Blog Job
  #9 (permalink)  
Antiguo 28/04/2009, 12:52
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Problemas con enctype="multipart/form-data" subiendo archivo y guardando n

suerte creo q eso ya sabes como hacerle

saludines!!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
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 16:04.