Foros del Web » Programando para Internet » PHP »

no se puede subir una imagen a la base de datos

Estas en el tema de no se puede subir una imagen a la base de datos en el foro de PHP en Foros del Web. Gente como estan, les comento que estoy armando un carrito el cual necesito que tenga una pequeña imagen de mi producto, para subir esta imagen ...
  #1 (permalink)  
Antiguo 25/05/2009, 23:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 97
Antigüedad: 15 años, 8 meses
Puntos: 1
no se puede subir una imagen a la base de datos

Gente como estan, les comento que estoy armando un carrito el cual necesito que tenga una pequeña imagen de mi producto, para subir esta imagen a la base de datos estoy haciendo un upload en php, el tema esta en q me tira error de q no se puede subir la imagen a la base de datos, les dejo mi codigo (el cual lo saque de este mismo sitio) para ver si me pueden dar una mano y encontrar el error. Gracias.

formulario.php
Código PHP:
<HTML>
<HEAD>
<TITLE>Binario a BD</TITLE>
</HEAD>
<BODY>
<?php
if (isset($_GET['proceso'])){
echo 
$_GET['proceso']."<br>";
}
?>
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
Archivo: <INPUT type="file" name="archivo" size="30">
<INPUT type="submit" name="submit" value="Subir archivo">
</FORM>
</BODY>
</HTML>




insertar.php

Código PHP:
<?php
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre.  Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.
if (empty($_FILES['archivo']['name'])){
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}

//establece una conexión con la base de datos.
$conexion mysql_connect("localhost","root","123") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("imagenes",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal)));

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];

//insertamos los datos en la BD.
$consulta_insertar "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: listar_imagenes.php");  // si ha ido todo bien
exit;
?>
y cada vez q llego a este punto me tirar el error de No se pudo insertar los datos en la base de datos.
SI alguien me puede dar una mano se lo re agradezco.
Saludoss!!
  #2 (permalink)  
Antiguo 25/05/2009, 23:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: no se puede subir una imagen a la base de datos

Yo no meteria la foto en la base de datos, sino mas bien la paso al servidor y busco el link donde esta la foto. Perdona que no te ayudara con el codigo que estas buscando pero lo comento a ver si modificas que en vez de añadir la foto directamente a la base de datos la añadas a tu servidor y luego agregas el link a la base de datos.
  #3 (permalink)  
Antiguo 26/05/2009, 04:35
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: no se puede subir una imagen a la base de datos

Código PHP:
if (empty($_FILES['archivo']['name'])){ 
creo que deberia de ser asi:

Código PHP:
if (!empty($_FILES['archivo']['name'])){ 
  #4 (permalink)  
Antiguo 26/05/2009, 09:57
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: no se puede subir una imagen a la base de datos

yo no guardaria la imagen en la base, sino guardaria la ruta donde la guarde, te dejo un script para crear una carpeta y guardar los archivos que recibo del form (pueden ser mas de uno); quizas te sirva:
Código &lt:
Ver original
  1. $band = 1;
  2. $tot = count($_FILES["archivos"]["name"]);
  3.          for ($i = 0; $i < $tot; $i++)
  4.          {
  5.                     if ($_FILES[archivos][error][$i]!=4) //si vale 4 no viene con nada entonces no entra en el IF
  6.                      {
  7.                             if ($band == 1)
  8.                             {
  9.                             mkdir("../requestsfiles/".$num, 0777);
  10.                             $band =2;
  11.                             }
  12.                                    
  13.                       $tmp_name = $_FILES["archivos"]["tmp_name"][$i];
  14.                       $name = GetQuitarAcentos($_FILES["archivos"]["name"][$i]);
  15.                       //echo $name;
  16.                       $name = strrev ($name);
  17.                                 list ($extension,$nombre) = explode(".", $name);
  18.                                 $extension = strrev($extension);
  19.                                 $name = strrev ($name);
  20.                                 move_uploaded_file($tmp_name,"../requestsfiles/".$num."/".$name);    
  21.                                 $fecha = date('Y-m-d');
  22.                                 $size = $_FILES[archivos][size][$i];
  23.                                 $tmpque = "INSERT INTO ".$tableCollab["files_request"]."(owner,request,date,size,name,extension) VALUES('$idSession',$num,'$fecha','$size','$name','$extension')";
  24.                                 connectSql("$tmpque");
  25.                                 //echo "entre ".$i . "veces <br><br>";
  26.                                
  27.                                 }
  28.  
  29.                     }
  #5 (permalink)  
Antiguo 26/05/2009, 11:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 97
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: no se puede subir una imagen a la base de datos

Gente ya consegui subir mi foto al servidor como ustede me dijieron, el tema es este como hago ahora para subirlo el link a la base de datos?? les dejo mi script

Cita:
<?php
// getcwd() ---> Captura la direccion correcta
$dir=getcwd();
echo $_POST['cadenatexto']." Nombres<br>";
if ($_POST['cadenatexto']!='')
{
// Utilizamos la variable $path para capturar la direccion completa incluyendo las carpetas [ /img_productos/webcams/] donde desea guardar sus imagenes
$path=$dir."/img_productos/";
$nombre_archivo = $_FILES['userfile']['name'];
$tipo_archivo = $_FILES['userfile']['type'];
$tamano_archivo = $_FILES['userfile']['size'];
if (!((strpos($nombre_archivo, "doc") || strpos($nombre_archivo, "gif") || strpos($nombre_archivo,"jpg"))))
{
echo "La extensión o el tamaño de los archivos no es correcta";
}
else
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $path.$_FILES['userfile']['name']))
{
echo "El archivo ha sido cargado correctamente.";
}
else
{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
}
?>
<br>
<br>

<a href="index.php">Volver</a>
<br>
</div>
</body>
</html>
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 03:29.