WikiStart: run_script.php

File run_script.php, 1.6 KB (added by pbuitrago, 3 years ago)

script para ejecutar firma

Line 
1<?php
2
3/**
4* ValidateFiles
5* valida de archivos subidos
6* @param temp (ruta del archivo temporal)
7* @param route (ruta relativa del archivo subido)
8* @return bool
9*
10* @author Angelo Osorio (@engelpain)
11* @licence CENDITEL 2.0
12*/
13
14function ValidateFiles($temp, $route) {
15    move_uploaded_file($temp, $route) or die("Error al intentar subir el archivo." . $route);
16}
17
18// Datetime
19$datetime = date_timestamp_get(date_create()); // nombre que tendrán los archivos temporales cargados
20
21// Frase de paso del p12
22$passphase = $_POST["password"]; // Contraseña o frase de paso cifrada
23
24// PDF
25$route_pdf = './tmp/' . $datetime . '.pdf'; // ruta donde se alojará el archivo firmado
26$pdf = $_FILES['pdf']['tmp_name']; // ruta temporal del archivo a firmar subido
27
28// PKCS12
29$route_pkcs12 = './tmp/' . $datetime . '.p12'; // Ruta donde se alojará el archivo PKCS#12
30$pkcs12 = $_FILES['pkcs12']['tmp_name']; // ruta temporal del archivo PKCS#12 subido
31print_r(ValidateFiles($pdf, $route_pdf));
32print_r(ValidateFiles($pkcs12, $route_pkcs12));
33
34// Ejecución del script que conecta con el API de PortableSigner
35$callPortable = "java -jar ./PortableSigner.jar -n";
36$run_shell = shell_exec("$callPortable -t $route_pdf -o ./tmp/$datetime-signed.pdf -s $route_pkcs12 -p $passphase");
37$run = ($run_shell) ? false : true;
38
39if ($run) {
40//Eliminación del archivo a firmar y del archivo PKCS12
41    echo '<a href="./tmp/'.$datetime.'-signed.pdf"> Download PDF signed</a>';
42    // Se borran los archivos de tmp
43    unlink($route_pdf) or die("No se pudo eliminar el pdf");
44    unlink($route_pkcs12) or die("No se pudo eliminar el p12");
45} else {
46    echo "PortableSigner no se ejecutó correctamente.";
47}