Enregistrer une image via url
parousky
Messages postés
325
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
c'est une question maintes fois posée mais je ne trouve pas de solution sur internet.
Tout est dans le titre, je veux créer une fonction qui prend une url en entrée et qui enregistre l'image associée (si elle existe) dans le répertoire de mon site.
Alors j'ai essayé pas mal de trucs dont :
donc ça ne fonctionne pas. J'ai aussi essayé bêtement :
Et ça ne fonctionne pas, en chemin absolu ou relatif pour $photo.
J'ai vu qu'il y avait un allow_url_fopen à modifier dans le php.ini. Mais je suis en mutualisé, je ne sais pas si je peux modifier comme ça. Sinon avec un ini_set dans le code ça peut fonctionner ?
Bref, à l'aide !!!
c'est une question maintes fois posée mais je ne trouve pas de solution sur internet.
Tout est dans le titre, je veux créer une fonction qui prend une url en entrée et qui enregistre l'image associée (si elle existe) dans le répertoire de mon site.
Alors j'ai essayé pas mal de trucs dont :
function save_picture($url)
{
$photo = 'Monrepertoire/Images/image.png';
$content = file_get_contents($url);
file_put_contents($photo, $content);
}
donc ça ne fonctionne pas. J'ai aussi essayé bêtement :
function save_picture($url)
{
$photo = 'Monrepertoire/Images/image.png';
copy($url, $photo);
}
Et ça ne fonctionne pas, en chemin absolu ou relatif pour $photo.
J'ai vu qu'il y avait un allow_url_fopen à modifier dans le php.ini. Mais je suis en mutualisé, je ne sais pas si je peux modifier comme ça. Sinon avec un ini_set dans le code ça peut fonctionner ?
Bref, à l'aide !!!
A voir également:
- Enregistrer une image via url
- Url - Guide
- Audacity enregistrer son pc - Guide
- Comment enregistrer une conversation - Guide
- Image iso - Guide
- Légender une image - Guide
2 réponses
Merci pour ta réponse, j'ai essayé du côté de Curl mais toujours rien... Voilà mon code :
L'url est une photo de profil facebook, je ne sais pas si ça change grand chose...
function grab_image($url,$saveto){
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto,'x');
fwrite($fp, $raw);
fclose($fp);
}
$_GET['pic'] = "https://scontent-cdg2-1.xx.fbcdn.net/hphotos-xfa1/v/t1.0-9/XXXXXXXXXXXXXXXXXXXX.jpg?oh=XXXXXXXXXXXXXXXXXXXXX";
if(!empty($_GET['pic']))
{
$url = $_GET['pic'];
$name_photo = 'Images/double_izy.jpg';
grab_image($url, $name_photo);
}
L'url est une photo de profil facebook, je ne sais pas si ça change grand chose...