Comunidad de diseño web y desarrollo en internet online

dejar nombre de imagen en bd

Citar            
MensajeEscrito el 14 Jun 2010 04:54 pm
Hola, estoy intentado hacer un formulario de insercion de registros en una base de datos y que pueda a la vez subir una imagen.
El formulario funciona, se insertan bien los registros y la foto sube al servidor, pero en la bd no queda registrado el nombre de la foto, por lo que luego no puedo llamarlas.

Al codigo este es el trozo de codigo con el que subo las imagenes

Código PHP :

<?php $ruta = "./imagenes/" . $_FILES['foto']['name']; 
copy($_FILES['foto']['tmp_name'], $ruta); 
echo "La imagen subio correctamente"; 
?>


El formulario lo pongo como multipart/form-data.

Me valdria con que sea algún apaño de que otro campo tome el nombre de la foto o algo asi.

Gracias.

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Jun 2010 04:11 am
Pues allí mismo en tu codigo tienes la solucion:

Código PHP :

$nombre_foto = $_FILES['foto']['name'];  //luego insertas este nombre en la bd

Por bucle_infinito

Claber

166 de clabLevel

1 tutorial

 

.NET Developer

mozilla
Citar            
MensajeEscrito el 17 Jun 2010 05:41 pm
Gracias por contestar, la verda he conseguido hacerlo pero el problema es que me inserta dos registros, uno con todos los datos y otro solo con el nombre de la foto.
Pero bueno y alo miro y os cuento.

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 22 Jun 2010 03:48 pm
Hola aqui estoy de nuevo, y nada ,no lo he conseguido, a ver si podeis indicarme como combinar estos codigos, para que el segundo sea insertado con el primero:

Por un lado tengo este, que es el que genera el DW con el wizard de insercion de registros:

Código PHP :

$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 locales (id_local, tipo, nombre,  foto,fecha) VALUES (%s, %s, %s, %s,  NOW())",
                       GetSQLValueString($_POST['id_local'], "int"),
                       GetSQLValueString($_POST['tipo'], "text"),
                       GetSQLValueString($_POST['nombre'], "text"),
                       GetSQLValueString($_POST['foto'], "text"),
                        GetSQLValueString($_POST['fecha'], "date"));

  mysql_select_db($database_mibd, $prueba);
  $Result1 = mysql_query($insertSQL, $prueba) or die(mysql_error());

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

y por otro este que me sirve para subir la foto, cambiarle el nombre y verificar es un jpg y que no supera los 100kb.

Código PHP :

<?php 
if(isset( $_POST [ 'Subir' ])) 
{ 
$urlfallo="http://www.midominio.es/error.php";
$urlok="http://www.midominio.es/ok.php";
$current_image = $_FILES [ 'foto' ][ 'name' ]; 
$extension = substr ( strrchr ( $current_image , '.' ), 1 ); 
$size = $_FILES [ 'foto' ][ 'size' ];
if (( $extension != "jpg" ) || ( $extension != "jpeg" ) && ($size > 100000 )) 
{ 
die( 'Sólo de admiten los formatos .jpg y .jpeg y un tamaño máximo de 100Kb' ); 
echo "<SCRIPT>window.location='$urlfallo';</SCRIPT>";
} 
$time = date ( "fYhis" ); 
$new_image = $time . "." . $extension ; 
$destination = "../imagenes/" . $new_image ; 
$action = copy ( $_FILES [ 'foto' ][ 'tmp_name' ], $destination ); 
if (! $action ) 
{ 
die( 'Se produjo un fallo inesperado y no se ha podido subir la fotografía, inténtelo de nuevo' );
 echo "<SCRIPT>window.location='$urlfallo';</SCRIPT>";
}else{ 
echo "La fotografía se ha subido perfectamente" ; 
echo "<SCRIPT>window.location='$urlok';</SCRIPT>";
} 
}else{ 
?>

Por pepito piscinas

106 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.