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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
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

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.