Foros del Web » Programando para Internet » PHP »

Problema para subir formulario con imagenes

Estas en el tema de Problema para subir formulario con imagenes en el foro de PHP en Foros del Web. Buenas, saludos a todos los que trabajamos un domingo Esta es mi duda, tras estudiar como subir imagenes a mi servidor, me he decidido por ...
  #1 (permalink)  
Antiguo 26/02/2012, 13:46
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Problema para subir formulario con imagenes

Buenas, saludos a todos los que trabajamos un domingo

Esta es mi duda, tras estudiar como subir imagenes a mi servidor, me he decidido por subirlas con un input type y el siguiente codigo cuando se hace el submit.

Para los que entienden esto, subo al servidor el fichero, pero a la bbdd SÓLO subo la ruta, ok?. Para mi es la mejor opción porque lo de los campos BLOB no encontré como hacerlos funcionar. Os pongo mi código.

Código:
<?php
include ("conector.php");
$nameimagen = $_FILES['imagen']['name'];
$tmpimagen = $_FILES['imagen']['tmp_name'];
$extimagen = pathinfo($nameimagen);
$ext = array("png","gif","jpg");
$urlnueva = "prensa/".$nameimagen;
//$urlnueva = "prensa/".md5($name . time()).'.'.$extimagen['extension']; 
$namefile = $extimagen['basename'];

$ssql = "UPDATE prensa set ";
$ssql .= "titulo='" .$_POST["titulo"] . "', ";
$ssql .= "descripcion='" .$_POST["descripcion"] . "', ";
$ssql .= "fecha='" .$_POST["fecha"] . "', ";
$ssql .= "imagen='" . $namefile ."' ";
$ssql .= "where id_prensa=" . $_POST["id"];



if(is_uploaded_file($tmpimagen)){
    if(array_search($extimagen['extension'],$ext)){
        copy($tmpimagen,$urlnueva);
        echo "Se ha guardado correctamente.";
        if(mysql_query($ssql,$conexion)){
            echo "Se ha guardado en la BBDD OK";   
        }else{
            echo "No se ha podido guardar.";
            echo mysql_error($ssql);
        echo $namefile;
        }
    }else{
        echo "Error: Sólo imágenes con formato (jpg, png o gif)";
    }
}else{
    echo "Elija una imagen";
}
mysql_close($conexion);
?>
<br>
<a href="update-con-seleccion-de-cliente.php">Volver a seleccionar otro cliente.</a>
La imagen sube perfectamente, pero el resto del formulario no, si quito de mi codigo la subida de imagenes, pues ya funciona, algo estoy poniendo mal en el UPDATE, pero no acabo de encontrarlo.

Otro problema que me encuentro y no entiendo tampoco, es que sólo me permite subir JPG.

Espero que alguien sepa que es :)

Gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 26/02/2012, 16:18
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problema para subir formulario con imagenes

Si muestras el formulario es mas facil ayudarte, de primeras el código se ve bien, solo como dato, no debes usar copy para "mover" el archivo temporal a su destino final, para eso existe move_uploaded_file que funciona igual, pero en este caso si mueve el archivo no solo lo copia, así evitas dejar la imagen en la carpeta temporal....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 26/02/2012, 18:16
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Respuesta: Problema para subir formulario con imagenes

Te muestro el formulario anterior

Código:
<html lang="es">
<head>
    <title>Formulario de actualizar</title>
</head>
<body>
<h1>Selección de cliente</h1>
<?
include ("conector.php");

$id = $_GET["id"];

$ssql = "select * from prensa where id_prensa=" .$id;
$cliente_editar = mysql_query($ssql);
//Tengo que mirar si hay resultados
if(mysql_num_rows($cliente_editar)>0){
//consigo los datos
$fila =  mysql_fetch_object($cliente_editar);

//Creo formulario de datos
?>
<form action="update-cliente-id2.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?php echo $id; ?>">
Titulo:
<br>
<input  type="text" name="titulo" value="<?php echo $fila ->titulo;?>">
<br>
<br>
Descripcion
<br>
<textarea  cols="40" rows="10" name="descripcion" value="<?php echo $fila ->descripcion;?>">
<?php echo $fila ->descripcion;?>
</textarea>
<br>
Fecha
<input  type="text" name="fecha" value="<?php echo $fila ->fecha;?>">
<br>
<br>
<br>
<input  type="file" name="imagen" value="<?php echo $fila ->imagen;?>">
<input type="submit" value="Cambiar">
</form>
<?php
}else{
    echo "No se encontro ningún cliente";
}
?>
<a href="update-con-seleccion-de-cliente.php">Volver</a>
<?php
mysql_close($conexion);
?>
</body>
</html>
Y lo del tema de que no me permita seleccionar png ni gif aunque lo haya declarado en la variable $ext?

Un saludo y gracias.

Etiquetas: formulario, imagenes, mysql, sql
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 08:56.