Estoy atascado con el siguiente problema:
Tengo un listado de una tabla de la BBDD, en este listado he añadido un 'delete', 'modify' y ahora estoy con el 'ver archivo'.
Parece senicillo, pero ahora viene el problema.
Para crear un nueva fila de la tabla de la BBDD, he creado un formulario (EmpFrmCreacion.php) y que dentro de este formulario pueda añadir un archivo que corresponda a la fila creada.
Entonces, he conseguido que me suba y guarde el archivo (EmpCrear.php) en la BBDD, pero ahora no soy capaz de que cuando le doy click al 'ver archivo' dentro del listado (EmpConsultar1.php) no me descarga ni me muestra el archivo.
No sé si me he expresado con claridad, a continuación muestro los códigos comentados.
Muchas gracias por vuestro tiempo y perdón por el post tan extenso!
CODIGO: EmpFrmCreacion.php
Código PHP :
Código PHP :
<?php include '../header.php'; ?> <center> <FORM enctype="multipart/form-data" method="post" action="EmpCrear.php"> Archivo: <INPUT type="file" name="archivo" size="50"> <table align="center" bgcolor="#A9E2F3"> <tr> <tr> <tr> <tr> <tr> <th colspan="3"> <FONT SIZE=6>New RFQ:</font></th> </tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <th>IdRFQ</th> <td colspan="3"> <input type="text" name="txtidrfq" size="9" /> <th>Data</th> <td colspan="3"> <input type="text" name="txtdata" size="9" /> </td> <th>Project Part Number</th> <td colspan="3"> <input type="text" name="txtproject_part_nombre" size="20" /> </td> <th>Customer</th> <td colspan="3"> <input type="text" name="txtcustomer" size="25"/></td> <th>Category</th> <td colspan="3"> <input type="text" name="txtcategoria" size="20" /> </td> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <th>RM Part Number</th> <td colspan="3"> <input type="text" name="txtRM_part_number" size="23" /> </td> <th>Suppliers</th> <td colspan="3"> <input type="text" name="txtsupplier" size="20" /> </td> <th>Price</th> <td colspan="3"> <input type="text" name="txtprice" size="20" /> </td> <th>Cry2</th> <td colspan="3"> <input type="text" name="txtcry2" size="5" /> </td> <th>MOQ</th> <td colspan="3"> <input type="text" name="txtmoq" size="20" /> </td> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <th>Volume</th> <td colspan="3"> <input type="text" name="txtvolume" size="23" /> </td> <th>Delivery time</th> <td colspan="3"> <input type="text" name="txtdelivery_time" size="20" /> </td> <th>Investment</th> <td colspan="3"> <input type="text" name="txtinvestment" size="25" /> </td> <th>Cry</th> <td colspan="3"> <input type="text" name="txtcry" size="5" /> </td> <th>Timing</th> <td colspan="3"> <input type="text" name="txttiming" size="20" /> </td> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <tr> <th>Responsible</th> <td colspan="3"> <input type="text" name="txtresponisble" size="23" /> </td> <th>Incoterms</th> <td colspan="3"> <input type="text" name="txtincoterms" size="25" /> </td> <th>Comments</th> <td colspan="3"> <input type="text" name="txtcomments" size="25" /> </td> </tr> <tr> <td align="right"colspan="20" > <INPUT type="submit" name="submit" value="SEND"> </td> </tr> </table> </form> </center> <body> </html>
CODIGO: EmpCrear.php
Código PHP :
Código PHP :
<?php require_once ('../conexion.inc.php'); $db1 = @mysql_connect($servidor,$usuario,$password) or die("Error al conectar al DBMS."); @mysql_select_db($basedatos) or die("Error al conectar a la BD"); //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: EmpFrmCreacion.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. exit; } // archivo temporal (ruta y nombre). $binario_nombre_temporal=$_FILES['archivo']['tmp_name']; echo "<br> Nombre archivo: ".$binario_nombre_temporal; // leer del archvio temporal .. el binario subido. // "rb" para Windows .. Linux parece q con "r" sobra ... $archivo_binario = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal))); echo "<br> Nombre archivo: ".$archivo_binario; // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $archivo_nombre=$_FILES['archivo']['name']; $archivo_peso=$_FILES['archivo']['size']; $archivo_tipo=$_FILES['archivo']['type']; $IdRFQ = $_POST['txtidrfq']; $Data = $_POST['txtdata']; $Suppliers = $_POST['txtsupplier']; $Price = $_POST['txtprice']; $Cry2 = $_POST['txtcry2']; $MOQ = $_POST['txtmoq']; $Volume = $_POST['txtvolume']; $Investment = $_POST['txtinvestment']; $Cry = $_POST['txtcry']; $Timing = $_POST['txttiming']; $Incoterms = $_POST['txtincoterms']; $Comments = $_POST['txtcomments']; $q1= "INSERT INTO rfq (idrfq, data, suppliers, price, cry2, moq, volume, investment, timing, cry, incoterms) values ('$IdRFQ','$Data', '$Suppliers', '$Price', '$Cry2', '$MOQ', '$Volume', '$Investment', '$Timing', '$Cry', '$Incoterms')"; $q2 = "SELECT id,archivo_binario,archivo_nombre,archivo_tipo,archivo_peso FROM archivos"; $result = mysql_query($q1) or die ("No se pudo ejecutar la consulta"); $result = mysql_query($q2) or die ("No se pudo ejecutar la consulta"); While ($registro=mysql_fetch_assoc($result)){ echo "<br> Nombre archivo: ".$registro['archivo_nombre']; echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo']; echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>"; } mysql_close(); ?>
CODIGO DESCARGA: Descbo.php
Código PHP :
Código PHP :
<?php if(isset($_GET['IdRFQ'])) { include '../header.php'; require_once ('../conexion.inc.php'); $db1 = @mysql_connect($servidor,$usuario,$password) or die("Error al conectar al DBMS."); @mysql_select_db($basedatos) or die("Error al conectar a la BD"); $IdRFQ = $_GET['IdRFQ']; $qry = "SELECT * FROM archivos WHERE IdRFQ=$IdRFQ"; $res = mysql_query($qry); echo "<br> Nombre archivo: ".$res; $contenido = mysql_result($res, 0, "contenido"); $tipo = mysql_result($res, 0, "tipo"); $nombre = mysql_result($res, 0, "nombre"); $peso = mysql_result($res,0,"peso"); header("Content-type: $tipo"); header("Content-length: $peso"); header("Content-Disposition: inline; filename=$nombre"); print $contenido; } ?>