Aller au contenu

PHP file_put_contents dans un autre dossier que le dossier web

Featured Replies

Posté(e)

Bonjour,

Je souhaite utiliser file_put_contents pour écrire des fichiers dans Volume1/mondossier/monsousdossier/,(cad ailleurs que dans mon dossier volume1/web/monsite/ où la je ne rencontre aucun problème)

Mais cela génère une erreur : Warning: file_put_contents(/volume1/Movies1/toto.jpg): failed to open stream: Permission denied

J'imagine qu'il s'agit d'une question de droits mais je ne vois pas comment résoudre le problème.

Merci & bonne journée

Posté(e)

Merci de commencer par la section présentation di forum, c'est toujours plus sympa.

Pour ton erreur, c'est le compte utilisé pour lancer ton code qui n'a pas les droits sur ton dossier, si tu utilises webstation, il faut autoriser le compte http (et aussi son groupe parfois)

Posté(e)
  • Auteur

Merci pour ta réponse Fenrir.

Et voici ma présentation.

Voilà, j'ai bien ajouté le groupe http sur ce dossier volume1/Movies1/Films mkv

image.png.4c2967edb8026c57cdd6d8831c74e6b5.png

Le message d'erreur suivant est lié à  open_basedir restriction in effect. File(/volume1/Movies1/Films mkv/titi.jpg) is not within the allowed path(s)

Alors j'ai ajouté le chemin suivant dans WebStation-->Parametres PHP-->open_basedir à la suite des précédents :"/volume1/Movies1/films mkv"

Et cette fois, j'obtiens le message d'erreur suivant : No input file specified.

Mon dossier de destination contenant un espace, je ne sais pas si écrire ce chemin entre quotes est bon....

Merci de ta patience face à mon niveau....

Mon code PHP est simplement : file_put_contents( '/volume1/Movies1/Films mkv/titi.jpg', fopen('http://thetvdb.com/banners/seasonswide/84947-3.jpg', 'r'));

Modifié par doctornono
oubli

Posté(e)

D'après ta présentation tu manipules en expert plusieurs langages tu devrais donc savoir ce genre de chose non :rolleyes: ?

Il existe plein de manières de faire (en fonction du langage, du type de fonctions, ...), par exemple :

  • changement de dossier avant la commande
  • encodage des caractères spéciaux
  • caractères d'échappement
  • ...

En passant, ton code me semble inutilement lourd (file_put+fopen), curl serait plus simple et plus fiable (et à peine moins rapide).

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.