mirror of
https://github.com/24eme/signaturepdf.git
synced 2023-08-25 09:33:08 +02:00
Multi-signature pdf generation uses temporary files with unique names to avoid collisions
This commit is contained in:
parent
b2c7b8986b
commit
b2ca7e81f3
9
app.php
9
app.php
@ -196,7 +196,7 @@ $f3->route('GET /signature/@hash/pdf',
|
|||||||
$sharingFolder = $f3->get('PDF_STORAGE_PATH').$hash;
|
$sharingFolder = $f3->get('PDF_STORAGE_PATH').$hash;
|
||||||
$files = scandir($sharingFolder);
|
$files = scandir($sharingFolder);
|
||||||
$originalFile = $sharingFolder.'/original.pdf';
|
$originalFile = $sharingFolder.'/original.pdf';
|
||||||
$finalFile = $sharingFolder.'/'.$f3->get('PARAMS.hash').'.pdf';
|
$finalFile = $sharingFolder.'/'.$f3->get('PARAMS.hash').uniqid().'.pdf';
|
||||||
$filename = $f3->get('PARAMS.hash').'.pdf';
|
$filename = $f3->get('PARAMS.hash').'.pdf';
|
||||||
if(file_exists($sharingFolder."/filename.txt")) {
|
if(file_exists($sharingFolder."/filename.txt")) {
|
||||||
$filename = file_get_contents($sharingFolder."/filename.txt");
|
$filename = file_get_contents($sharingFolder."/filename.txt");
|
||||||
@ -212,12 +212,17 @@ $f3->route('GET /signature/@hash/pdf',
|
|||||||
}
|
}
|
||||||
$filename = str_replace('.pdf', '_signe-'.count($layers).'x.pdf', $filename);
|
$filename = str_replace('.pdf', '_signe-'.count($layers).'x.pdf', $filename);
|
||||||
copy($originalFile, $finalFile);
|
copy($originalFile, $finalFile);
|
||||||
$bufferFile = str_replace('.pdf', '_tmp.pdf', $originalFile);
|
$bufferFile = $finalFile.".tmp";
|
||||||
foreach($layers as $layerFile) {
|
foreach($layers as $layerFile) {
|
||||||
shell_exec(sprintf("pdftk %s multistamp %s output %s", $finalFile, $layerFile, $bufferFile));
|
shell_exec(sprintf("pdftk %s multistamp %s output %s", $finalFile, $layerFile, $bufferFile));
|
||||||
rename($bufferFile, $finalFile);
|
rename($bufferFile, $finalFile);
|
||||||
}
|
}
|
||||||
Web::instance()->send($finalFile, null, 0, TRUE, $filename);
|
Web::instance()->send($finalFile, null, 0, TRUE, $filename);
|
||||||
|
|
||||||
|
if($f3->get('DEBUG')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
array_map('unlink', glob($finalFile."*"));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user