Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2009, 14:44
Info23
 
Fecha de Ingreso: mayo-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 1
Respuesta: Subir imágenes a Mysql con php

Claro que si!

Los siguientes códigos sirven para insertar un formulario con diversos campos incluyendo un campo para subir archivos a Mysql con códigos php

Formulario php y html:

Código PHP:
<?php
$conexion 
mysql_connect('localhost''''');
mysql_select_db('');
?>
<?php
if (isset($_GET['proceso'])){
echo 
$_GET['proceso']."<br>";
}
?>
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
<label>Tipo de vivienda:<br />
<select name="tipovivienda" id="tipovivienda">
  <option value="0">--Escoja tipo alquiler--</option>
  <?php
    $tablavivienda 
mysql_query("SELECT * FROM vivienda ORDER BY id ASC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registrovivienda mysql_fetch_array($tablavivienda)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
        <option value="<?php echo $registrovivienda['id']; ?>"><?php echo $registrovivienda['tipo']; ?></option>
  <?php
    
// termina la zona de repeticion
    
mysql_free_result($tablavivienda); // se libera la memoria usada por la tabla
?>
</select>
    </label>
    <font color="red">(*)</font></p>
                                     <p>
    <label>Ciudad:<br />
      <select name="ciudad" id="ciudad">
        <option value="0">---Escoja la ciudad---</option>
        <?php
    $tablaciudades 
mysql_query("SELECT * FROM ciudades ORDER BY nombre ASC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registrociudad mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
        <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
    
// termina la zona de repeticion
    
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
      </select>
    <font color="red">(*)</font><br />
      <br />
      <label>Población / Zona:<br />
      <input name="poblacion" type="text" id="poblacion" size="21" maxlength="30" />
  <font color="red">(*)</font><br />
      <br /><label>
      <label>E-mail:<br />
<input name="email" type="text" id="email" size="21" maxlength="50" />
<font color=red>(*)</font></label>
<br />
<br />
<label>Teléfono:
<br />
<input name="telefono" type="text" id="telefono" size="21" maxlength="30" />
</label> 

<!-- Fin tabla 1 !-->

<br />
<br />
<label>Precio:<br />
  <input name="precio" type="text" id="precio" size="16" maxlength="20" />
</label>
</p>
                                     <p>
  <label>Metros Cuadrados:<br />
    <input name="m2" type="text" id="m2" size="16" maxlength="10" />
  </label>
  <br />
  <br />
  <label>Nº Habitaciones:
    <br />
    <input name="habitaciones" type="text" id="habitaciones" size="16" maxlength="2" />
  </label>
  <br />
  <br />
  <label>N&ordm; Ba&ntilde;os:
    <br />
    <input name="banos" type="text" id="banos" size="16" maxlength="2" />
  </label>
  </p>
  <p>
  <label>Segundamano
    <input name="estado" type="radio" id="estado_0" value="Segundamano" checked="checked" />
  </label>
  <label>Obra Nueva
    <input type="radio" name="estado" value="Obra Nueva" id="estado_1" />
  </label>
</p>
<label>Opci&oacute;n a Compra: Si
    <input name="opcion" type="radio" id="opcion_0" value="Si" checked="checked" />
  </label>
  <label>No
    <input type="radio" name="opcion" value="No" id="estado_1" />
  </label>
</p>
<p>
  <label>Particular
      <input name="cliente" type="radio" id="cliente_0" value="Particular" checked="checked" />
  </label>
  <label>Inmobiliaria
     <input type="radio" name="cliente" value="Inmobiliaria" id="cliente_1" />
  </label>
  </p>
<p>
  <label>Descripción Inmueble<br />
<textarea name="descripcion" id="descripcion" cols="40" rows="5"></textarea>
  </label>
<label>Archivo:</label>
  <INPUT type="file" name="archivo" size="30">
  <INPUT type="submit" name="submit" value="Subir archivo">
</form>
Codigo php para insertar el formulario en la base de datos:

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","","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("",$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"r"), 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'];
$tipovivienda=$_POST['tipovivienda'];
$ciudad=$_POST['ciudad'];
$poblacion=$_POST['poblacion'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$precio=$_POST['precio'];
$habitaciones=$_POST['habitaciones'];
$banos=$_POST['banos'];
$m2=$_POST['m2'];
$cliente=$_POST['cliente'];
$estado=$_POST['estado'];
$opcion=$_POST['opcion'];
$descripcion=$_POST['descripcion'];
//insertamos los datos en la BD.
$consulta_insertar "INSERT INTO propiedades (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo, idvivienda, idciudad, poblacion, email, telefono, precio, habitaciones, banos, m2, cliente, estado, opcion, descripcion) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo', '$tipovivienda', '$ciudad', '$poblacion', '$email', '$telefono', '$precio', '$habitaciones', '$banos', '$m2', '$cliente', '$estado', '$opcion', '$descripcion')";
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;
?>