FPDI Ajout d'une image avec $_FILES
Bonjour
J'ai vu cette conversation aussi
Le but de mon code est d'ajouter une image dans un pdf préfait.
J'utilise FPDI.
Pour cela, je saisis une image dans un formulaire html classique, puis je le récupère avec $_FILESJe teste l’existence de mon image comme ceci :
Code:
1 2 3 4 5 6 7
| $image = tempnam(sys_get_temp_dir(), $_FILES["fichier"]["name"]);
if (!file_exists($image)) {
var_dump("Erreur 22.01 : le fichier n'existe pas");
die();
}
var_dump( $image); //me retourne string(53) "/tmp/Capture décran_2022-02-03_09-06-11.png1JCvjg"
die(); |
Pourquoi y a t-il des caractères après l'extension? (.png)
Je passe outre, et je continue mon code:
Code:
1 2 3 4 5 6
| $pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile('a.pdf');
$page = $pdf->importPage(1);
$pdf->useTemplate($page);
$pdf->Image($image,10,10,-300); |
Là, j'ai une erreur dans le log php :
Citation:
PHP Fatal error: Uncaught Exception: FPDF error: Unsupported image type: pngtxvkeq in /var/www/html/StatArbitrage/fpdf/fpdf.php:271\nStack trace:\n#0 /var/www/html/StatArbitrage/fpdf/fpdf.php(884): FPDF->Error()\n#1 /var/www/html/StatArbitrage/rapport_generateur/generateur.inc.php(103): FPDF->Image()\n#2 {main}\n thrown in /var/www/html/StatArbitrage/fpdf/fpdf.php on line 271, referer:
http://localhost/StatArbitrage/rapport_generateur.html
Cette erreur renvoie à cette ligne $pdf->Image($image,10,10,-300);Je comprends le message d'erreur.
J'ai fait un test avec un lien"en dur' et tout fonctionne bien, l'image est bien incluse
$pdf->Image("/home/.../Téléchargements/Capture décran_2022-02-03_09-06-11.png",10,10,-300);Du coup, j'ai essayé ceci :
Code:
1 2 3 4 5 6 7
| $image = tempnam(sys_get_temp_dir(), $_FILES["fichier"]["name"]);
if (!file_exists($image)) {
var_dump("Erreur 22.01 : le fichier n'existe pas");
die();
}
$image = substr($image, 0, -6);
$pdf->Image($image,10,10,-300); |
mais
Citation:
PHP Fatal error: Uncaught Exception: FPDF error: Can't open image file: /tmp/Capture d\xe2\x80\x99\xc3\xa9cran_2022-02-03_09-06-11.png in /var/www/html/StatArbitrage/fpdf/fpdf.php:271\nStack trace:\n#0 /var/www/html/StatArbitrage/fpdf/fpdf.php(1261): FPDF->Error()\n#1 /var/www/html/StatArbitrage/fpdf/fpdf.php(885): FPDF->_parsepng()\n#2 /var/www/html/StatArbitrage/rapport_generateur/generateur.inc.php(101): FPDF->Image()\n#3 {main}\n thrown in /var/www/html/StatArbitrage/fpdf/fpdf.php on line 271, referer:
http://localhost/StatArbitrage/rapport_generateur.html
J'avoue que je sèche. D'où vient ce problème d'ecodage?
Pour tester, j'ai supprimé tous les caractères type "'" et "é", mais même problème
Citation:
PHP Fatal error: Uncaught Exception: FPDF error: Can't open image file: /tmp/Capture decran_2022-02-03_09-06-11.png in /var/www/html/StatArbitrage/fpdf/fpdf.php:271\nStack trace:\n#0 /var/www/html/StatArbitrage/fpdf/fpdf.php(1261): FPDF->Error()\n#1 /var/www/html/StatArbitrage/fpdf/fpdf.php(885): FPDF->_parsepng()\n#2 /var/www/html/StatArbitrage/rapport_generateur/generateur.inc.php(102): FPDF->Image()\n#3 {main}\n thrown in /var/www/html/StatArbitrage/fpdf/fpdf.php on line 271, referer:
http://localhost/StatArbitrage/rapport_generateur.html
Merci d'avance.