file_put_contents: Failed to open stream, aucun fichier ou répertoire
Je suis en train d'utiliser dompdf pour enregistrer un formulaire pour un facilement lisible .fichier pdf, et mon script de traitement est 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
. (Ligne 39 est la dernière ligne dans mon script.) Je ne sais pas comment résoudre ce problème.
allow_url_fopen
est sur, et j'ai essayé toutes sortes de chemins d'accès de fichier, y compris le répertoire complet (/home/username/public_html/subdir/files/grantapps/
) et ce qui est dans le 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());
Un utilisateur peut soumettre le formulaire plusieurs fois, et, depuis que je suis en utilisant leur nom en tant que nom de fichier, je voulais juste ajouter un numéro à la fin et de sauvegarder chaque fichier avec un nouveau nom de fichier plutôt que de remplacer le fichier existant.
pourquoi ne pas utiliser $dompdf->flux("fichiers/grantapps/" . $nom . $je . ".pdf");
Le
stream()
fonction provoque le téléchargement du fichier et accepte uniquement un nom de fichier comme paramètre. Je veux enregistrer le fichier sur le serveur web, et d'autres endroits, a déclaré file_put_contents()
est la façon de le faire.
OriginalL'auteur vaindil | 2013-02-09
Vous devez vous connecter pour publier un commentaire.
Il y a définitivement un problème avec le chemin de dossier de destination.
Au-dessus de votre message d'erreur dit, il veut mettre le contenu d'un fichier dans le répertoire
/files/grantapps/
, ce qui serait au-delà de votrevhost
, mais quelque part dans le système (voir le leader absolu slash )Vous devriez vérifier:
/home/username/public_html/files/grantapps/
vraiment présent./home/username/public_html/files/grantapps/
/grantapps/
répertoire. De la création et de revenir à la pleine lien travaillé. Désolé, je vous remercie beaucoup!J'ai le même problème et tous mes chemins sont parfaitement mis en place, il vient de lance de la même erreur.
L'important pour moi a été l'utilisation de la absolu le chemin, j'ai été en utilisant
~/
.OriginalL'auteur SomeoneYouDontKnow
J'ai aussi été coincé dans le même genre de problème et j'ai suivi l'étape simple->
vient d'obtenir l'url exacte du fichier où tu veux copier Ex->
et de passer l'exacte absolu chemin d'accès du dossier avec le nom du fichier où u ne voulez écrire ce fichier
1->si u r sur la machine windows, puis
d:/xampp/htdocs/upload/test.txt
et
2->si u r sur la machine linux alors
/var/www/html/upload/test.txt
et u peut obtenir le docuement racine par la fonction PHP->
OriginalL'auteur Sachin
Je suis tombé sur ce problème hier & je ne sais pas comment je l'ai résolu tbh, mais voici comment j'ai procédé.
Mon chemin est "/tmp/transtel/importReleaseDisk/" & j'ai rencontré l'erreur ; donc, pour commencer à résoudre le problème, j'ai écrit mon fichier dans le répertoire parent, puis est allé plus loin.
Résolu le problème idk pourquoi...
Assurez-vous d'avoir les bonnes autorisations. Php normalement avis vous lorsque vous ne pouvez pas écrire à cause de l'absence de droits, mais on ne sait jamais...
OriginalL'auteur Erwan Clügairtz