J'essaie d'utiliser dompdf pour enregistrer un formulaire dans un fichier .pdf facilement lisible. Mon script de traitement est présenté ci-dessous. Je reçois l'erreur Warning: file_put_contents(/files/grantapps/NAME0.pdf) [function.file-put-contents]: failed to open stream: No such file or directory in /home/username/public_html/subdir/apps/dompdf/filename.php on line 39
. (La ligne 39 est la dernière ligne de mon script complet.) Je ne sais pas comment résoudre ce problème.
allow_url_fopen
est activé et j'ai essayé toutes sortes de chemins de fichiers, y compris le répertoire complet (/home/username/public_html/subdir/files/grantapps/
) et le contenu du code ci-dessous, mais rien n'a fonctionné.
require_once("dompdf_config.inc.php");
date_default_timezone_set('America/Detroit');
$html = 'code and whatnot is here';
$name = str_replace(" ", "", $_POST['form2name']);
$i = 0;
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
while(file_exists("files/grantapps/" . $name . $i . ".pdf")) {
$i++;
}
file_put_contents("files/grantapps/" . $name . $i . ".pdf", $dompdf->output());
Il y a définitivement un problème avec le chemin du dossier de destination.
Votre message d'erreur ci-dessus indique qu'il souhaite mettre le contenu dans un fichier du répertoire /files/grantapps/
, qui dépasserait votre vhost
, mais quelque part dans le système (voir la barre oblique absolue)
Vous devriez vérifier:
/home/username/public_html/files/grantapps/
est-il vraiment présent?./home/username/public_html/files/grantapps/
J'étais aussi coincé dans le même genre de problème et je suis la simple étape->
il suffit d’obtenir l’URL exacte du fichier dans lequel vous voulez copier Ex->
http://www.test.com/test.txt (file to copy)
et passez le chemin exact du dossier absolute avec le nom de fichier où voulez-vous écrire ce fichier?
1-> Si vous êtes sous Windows, alors d:/xampp/htdocs/upload/test.txt
Et
2-> Si vous êtes sur une machine Linux, alors /var/www/html/upload/test.txt
et vous pouvez obtenir la racine du document par la fonction PHP ->
$_SERVER['DOCUMENT_ROOT']
J'ai rencontré ce problème hier et je ne sais pas comment je l'ai résolu, mais voici comment j'ai procédé.
Mon chemin était "/ tmp/transtel/importReleaseDisk /" et j'ai rencontré l'erreur; donc pour commencer à résoudre le problème, j’écrivis mon fichier dans le répertoire parent principal puis allai plus loin.
file_put_contents("/tmp/aa.txt", "aaa");
file_put_contents("/tmp/transtel/aa.txt", "aaa");
file_put_contents("/tmp/transtel/importReleaseDisk/aa.txt", "aaa");
Résolu le problème idk pourquoi ...
Assurez-vous d'avoir les bonnes autorisations. Php normalement vous remarque quand vous ne pouvez pas écrire à cause du manque de droits mais vous ne savez jamais ...