Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/10/2016, 12:42
Avatar de manuparquegiralda
manuparquegiralda
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 8 meses
Puntos: 39
Respuesta: Descargar desde BD

Con estos tres simples archivos tendrías a modo básico lo que quieres hacer por completo. El formulario para subir las recetas, el script que guarda la receta y un archivo php que te las lista y te ofrece un link de descarga. Ahora solo tendrías que adaptarlo a tu proyecto para que se vea como quieres que se vea, pero como puedes comprobar es mucho más sencillo que ponerte a guardar los PDF en la base de datos y le ahorrarás muchos recursos al servidor MYSQL:

Formulario de subida: index.php

Código PHP:

<form action="save-receta.php" method="post" enctype="multipart/form-data">
<
label>Título: <input type="text" name="titulo" /></label>
<
label>Archivo pdf: <input type="file" name="pdf" /></label>
<
label>Descripción: <textarea name="descripcion"></textarea></label>
<
input type="submit" value="Guardar" />
</
form
Guardar archivo: save-receta.php

Código PHP:
<?php

require_once("conexionbd.php");
require_once(
"conexionftp.php");

/* POSTEAMOS LOS DATOS */

$tituloReceta $_POST['titulo'];
$descripcionReceta $_POST['descripcion'];
$archivo $_FILES['pdf'];

if(
$archivo['type'] != "application/pdf") {
    echo 
"El archivo que intentas subir no es un PDF";
    die();
}

/* CREAMOS LA CARPETA DE RECETAS */

if(!file_exists("archivos")) {
    
mkdir("archivos"0777true);
}
if(!
file_exists("archivos/recetas-cocina")) {
    
mkdir("archivos/recetas-cocina"0777true);
}

/*  ASIGNAMOS NOMBRE DEL ARCHIVO Y LA URL DE ÉSTE */

$nameArchivo mt_rand(0,999999999);
$urlFile 'archivos/recetas-cocina/'.$nameArchivo.'.pdf';

while(
file_exists($urlFile)){
    
$nameArchivo mt_rand(0,999999999);
    
$urlFile 'archivos/recetas-cocina/'.$nameArchivo.'.pdf';
}

/* COPIAMOS EL ARCHIVO */

if(!move_uploaded_file($archivo['tmp_name'] , $urlFile )) {
    echo 
"No pudo copiarse el archivo.";
    die();
}

/* GUARDAMOS LOS DATOS EN LA BASE DE DATOS */

$mysqli->query("INSERT INTO recetas (titulo, descripcion, urlpdf) VALUES ('".$tituloReceta."', '".$descripcionReceta."', '/".$urlFile."')");

if(
$mysqli->error) {
    
unlink($urlFile);
    echo 
"Hubo un error al guardar los dats en la base de datos: ".$mysqli->error;
    die();
}

/* REDIRECCIONAMOS A LISTADO DE RECETAS */

header("location: listar-recetas.php");

?>
Listar recetas con enlace de descarga: listar-recetas.php

Código PHP:
<?php

require_once("conexionbd.php");

$listado '';
$pRecetas $mysqli->query("SELECT * FROM recetas");
while(
$aRecetas $pRecetas->fetch_assoc()) {
    
$listado .= 'Receta '.$aRecetas['id'].': '.$aRecetas['titulo'].'<br /><br />
    '
.nl2br($aRecetas['descripcion']).'<br />
    <a href="'
.$aRecetas['urlpdf'].'" download="'.$aRecetas['titulo'].'">Descargar</a><br /><br />';
}

echo 
$listado;

?>
__________________
Diseño Web - Arisman Web

Última edición por manuparquegiralda; 16/10/2016 a las 13:13