Enregistrez le fichier avec file_put_contents dans le dossier

file_put_contents('image.jpg',file_get_contents('http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

Cela fonctionne ok – enregistrer le fichier dans le dossier en cours, mais si j’essaie:

 file_put_contents('/subfolder/image.jpg',file_get_contents('http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

alors j’ai une erreur:

Impossible d’ouvrir le stream: aucun fichier ou répertoire de ce type dans

etc

Pourquoi? Comment puis-je enregistrer cela dans un sous-dossier?

Utilisez toujours des chemins d’access complets et assurez-vous que le répertoire est accessible en écriture. Vous pouvez également utiliser une copy directement avec l’URL

 $url = 'http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg'; $dir = __DIR__ . "/subfolder"; // Full Path $name = 'image.jpg'; is_dir($dir) || @mkdir($dir) || die("Can't Create folder"); copy($url, $dir . DIRECTORY_SEPARATOR . $name); 

Essayez de laisser de côté la première barre oblique:

 file_put_contents('subfolder/image.jpg',file_get_contents('http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

Vérifiez les droits d’access si cela ne fonctionne toujours pas.

Vous devriez vérifier si le dossier existe et sinon créer ce dossier

 $dir_to_save = "/subfolder/"; if (!is_dir($dir_to_save)) { mkdir($dir_to_save); } file_put_contents($dir_to_save.'image.jpg',file_get_contents('http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); 

assurez-vous également que vous voulez utiliser ABSOLUTE_PATH au lieu de RELATIVE

 file_put_contents('../subfolder/image.jpg',file_get_contents('http://img.zgserver.com/php/12f0cc69cd9742faa9c8ee0f7b0d210e.jpg')); add "../" in your ssortingng put into the file_put_contents function then it will work fine.. 
 $dir = "folder_name".$filename; 

vous pouvez utiliser ce qui précède pour simplement mettre du contenu dans n’importe quel fichier de n’importe quel dossier.