Ver Mensaje Individual
  #436 (permalink)  
Antiguo 09/01/2009, 20:31
Halethh
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Re: Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binari

Cita:
Iniciado por Raules Ver Mensaje
En el caso que surja la posibilidad de modificar la imagen subida, como se podría hacer?
Hola.. pues aqui mi pequeña aportación.. a ver si sirve..

Lo que hice primero fue agregar un campo al formulario para que identifique el id que quiero modificar

editalafoto.php
Código:
<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="cambia.php">
<!-- Estas son las líneas que agregue-->
<p>número a modificar: 
    <label>
    <input name="id" type="text" id="id">
    </label>
<!-- Aqui terminan las líneas agregadas -->
Archivo: <INPUT type="file" name="archivo" size="30">
<INPUT type="submit" name="submit" value="Subir archivo">
</FORM>
</BODY>
</HTML>
despues con base en insertar.php cree en archivo cambia.php

cambia.php

Código:
<?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","nombredetuusuario","password") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("nombredetubasededatos",$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, tamanio y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];

//cambiamos  los datos en la BD.
import_request_variables("P");
$consulta_insertar = "UPDATE archivos SET archivo_binario ='$binario_contenido', archivo_nombre = 'binario_nombre',  archivo_peso = '$binario_peso', archivo_tipo = '$binario_peso'  WHERE id='$id'";
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 ya eso fue todo.. espero se entienda.. Saludos!