Espero me puedan ayudar, aqui les dejo el codigo
Código PHP:
class Documento {
private $id_documento;
private $nombre_documento;
private $descripcion_documento;
private $tipo_documento;
private $ruta_archivo;
private $cantidad_firmas;
private $estatus;
private $cedula_generador;
function __construct() {
$this->db = pdodb::getDB();
}
public function getId_documento() {
return $this->id_documento;
}
public function getNombre_documento() {
return $this->nombre_documento;
}
public function getDescripcion_documento() {
return $this->descripcion_documento;
}
public function getTipo_documento() {
return $this->tipo_documento;
}
public function getRuta_archivo() {
return $this->ruta_archivo;
}
public function getCantidad_firmas() {
return $this->cantidad_firmas;
}
public function getEstatus() {
return $this->estatus;
}
public function getCedula_generador() {
return $this->cedula_generador;
}
public function setId_documento($id_documento) {
$this->id_documento = $id_documento;
}
public function setNombre_documento($nombre_documento) {
$this->nombre_documento = $nombre_documento;
}
public function setDescripcion_documento($descripcion_documento) {
$this->descripcion_documento = $descripcion_documento;
}
public function setTipo_documento($tipo_documento) {
$this->tipo_documento = $tipo_documento;
}
public function setRuta_archivo($ruta_archivo) {
$this->ruta_archivo = $ruta_archivo;
}
public function setCantidad_firmas($cantidad_firmas) {
$this->cantidad_firmas = $cantidad_firmas;
}
public function setEstatus($estatus) {
$this->estatus = $estatus;
}
public function setCedula_generador($cedula_generador) {
$this->cedula_generador = $cedula_generador;
}
public function salvar($file_upload, $tmp_name, $size, $tipo) {
$rutacompl = $this->ruta_archivo . $file_upload;
if ($tipo == "application/pdf") {
if ($size > 0) {
// Si no hubo ningun error, hacemos otra condicion para asegurarnos que el archivo no sea repetido
if (!file_exists($rutacompl)) {
// Si no es un archivo repetido y no hubo ningun error, procedemos a subir a la carpeta /archivos, seguido de eso alamacenamos en BD
if (move_uploaded_file($tmp_name, $rutacompl)) {
$sql = "INSERT INTO documentos
(nombre_documento,descripcion_documento,tipo_documento,ruta_archivo,cantidad_firmas,cedula_generador,estatus)
VALUES(:nombre_documento,:descripcion_documento,:tipo_documento,:ruta_archivo,:cantidad_firmas,:cedula_generador,:estatus)
RETURNING id_documento";
$sth = $this->db->prepare($sql);
$sth->execute(
array(
'nombre_documento' => $this->nombre_documento,
'descripcion_documento' => $this->descripcion_documento,
'tipo_documento' => $this->tipo_documento,
'ruta_archivo' => $this->ruta_archivo,
'cantidad_firmas' => $this->cantidad_firmas,
'cedula_generador' => $this->cedula_generador,
'estatus' => $this->estatus
)
);
$resultado = $sth->fetch(PDO::FETCH_ASSOC);
$this->id_documento = $resultado['id_documento'];
return 0;
} else {
return 1;
}
} else {
return 2;
}
} else {
return 3;
}
} else {
return 4;
}
}
Código PHP:
$file_uploadPDF = $_FILES["archivo"]["name"];
$tmp_namePDF = $_FILES["archivo"]["tmp_name"];
$sizePDF = $_FILES["archivo"]["size"];
$tipoPDF = $_FILES["archivo"]["type"];
$rutaabs = "documentospdf/afirmar/";
$valfirmante = $_REQUEST['fieldF'];
$valdestinatario = $_REQUEST['fieldD'];
$cantfirmas = count($valfirmante);
$documento_req = new Documento();
$documento_req->setNombre_documento($file_uploadPDF);
$documento_req->setDescripcion_documento($_REQUEST['descripciondoc']);
$documento_req->setTipo_documento($_REQUEST['tipodocumento']);
$documento_req->setRuta_archivo($rutaabs);
$documento_req->setCantidad_firmas($cantfirmas);
$documento_req->setEstatus('Iniciado');
$documento_req->setCedula_generador($_SESSION['cedula']);
$validaPDF = $documento_req->salvar($file_uploadPDF, $tmp_namePDF, $sizePDF, $tipoPDF);
$id_documento = $documento_req->getId_documento();
if ($validaPDF == 0) {
$resultadoPDF = 'Datos Guardados';
} else if ($validaPDF == 1) {
$resultadoPDF = 'Error subiendo el archivo al servidor';
} else if ($validaPDF == 2) {
$resultadoPDF = 'El archivo ya existe en el servidor';
} else if ($validaPDF == 3) {
$resultadoPDF = 'El archivo esta vacio';
} else if ($validaPDF == 4) {
$resultadoPDF = 'Archivo no permitido, solo se permite archivos PDF';
}
$firmante_req = new Firmante();
for ($i = 0; $i < count($valfirmante); $i++) {
$firmante[$i] = $valfirmante[$i];
$firmante_req->setId_documento_doc($id_documento);
$firmante_req->setCedula_firmante($firmante[$i]);
$firmante_req->setOrden_firmante($i);
$firmante_req->salvar();
}
$destinatario_req = new Destinatario();
for ($k = 0; $k < count($valdestinatario); $k++) {
$destinatario[$k] = $valdestinatario[$i];
$destinatario_req->setCedula_destinatario($destinatario[$i]);
$destinatario_req->setId_documento_dest($id_documento);
$destinatario_req->salvar();
}