Enregistré sur le server l'image d'une url

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Enregistré sur le server l'image d'une url

Re: Enregistré sur le server l'image d'une url

par @rthur » 21 juil. 2018, 08:46

Debug ton code à coup de var_dump() pour voir le contenu des variables et suivre l'exécution de ton script.
Là à première vue, c'est normal qu'il ne fonctionne pas vu qu'il y a du code après un return

Re: Enregistré sur le server l'image d'une url

par yoann38 » 21 juil. 2018, 06:19

Je télécharge depuis plusieurs site et les copies sur mon dossier photo mais en local.
J'ai essayer donc une autre méthode pour voir qui fonctionne mais on dirai que les photos sont vide, elles s'enregistre bien dans le dossier mais si je ve ouvrir une pohto via le dossier il me dit " nous ne prenons pas en charge ce genre de format " alors que c'est du jpg.
Code :
// Récupérer la photo d'une url	
	function getimg($url) {         
		$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';              
		$headers[] = 'Connection: Keep-Alive';         
		$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';         
		$user_agent = 'php';         
		$process = curl_init($url);         
		curl_setopt($process, CURLOPT_HTTPHEADER, $headers);         
		curl_setopt($process, CURLOPT_HEADER, 0);         
		curl_setopt($process, CURLOPT_USERAGENT, $user_agent); //check here         
		curl_setopt($process, CURLOPT_TIMEOUT, 30);         
		curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);         
		curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);         
		$return = curl_exec($process);         
		curl_close($process);         
		return $return;     
   
      // Coté traitement
$imgurl = $ligne[28]; 
$imagename= basename($imgurl);
if(file_exists('./photo/'.$imagename)){continue;} 
$image = getimg($imgurl); 
file_put_contents('photo/'.$imagename,$image);  
	}

Re: Enregistré sur le server l'image d'une url

par @rthur » 20 juil. 2018, 23:58

Non, copy() est très rapide, en revanche, c'est peut être le serveur distant sur lequel tu essaye de télécharger l'image qui est très lent depuis ton serveur.

Re: Enregistré sur le server l'image d'une url

par yoann38 » 20 juil. 2018, 18:44

J'ai trouvé la fonction copie sinon qui marche mais vraiment très très lent est ce normal ?

		$photo = $ligne[28];
		copy($ligne[28], 'photo/'.$titre.'.jpg');
			

Re: Enregistré sur le server l'image d'une url

par yoann38 » 19 juil. 2018, 19:51

Re, du coup j'ai donc mis en place juste ceci:
// $ligne[28] Correspond 0 la ligne du CSV parcourut, résultat rendu par exemple :
// https://cnstlltn.com/master/2f3ced88-5969-4d9e-9c60-f36e913844be/fetehuitrenb.jpg

$image = file_get_contents($ligne[28]);
 file_put_contents('/photo/image.jpg', $image); 
Mais rien ne s'enregistre dans mon repertoire photo ....

Re: Enregistré sur le server l'image d'une url

par @rthur » 17 juil. 2018, 10:21

La licence data l'autorise du moment que la source est cité ;)
Je ne sais pas ce que c'est que la "licence data" mais si tu as un accord de licence avec les sites concernés, alors pas de problème.
Je le signalais juste pour t'éviter des problèmes d'ordre juridique :D


Or1 t'a donné les 2 fonctions pour faire le traitement de récupération de l'image. Il est préférable que tu fasses la récupération et le traitement (génération des miniatures) dans une chaine de traitement à part, et que ce ne soit pas lié à l'affichage par tes visiteurs, sinon effectivement ça va être très long.

Re: Enregistré sur le server l'image d'une url

par yoann38 » 17 juil. 2018, 05:56

La licence data l'autorise du moment que la source est cité ;)

Re: Enregistré sur le server l'image d'une url

par @rthur » 16 juil. 2018, 23:13

On est d'accord que pour récupérer ces images tu as bien l'accord écrit des propriétaires de chaque site ?

Par exemple, pour le réseau France Billet, il faut faire une demande ici pour avoir accès à un webservice qui te fournit toutes les infos :
http://www.francebillet.com/editorial.d ... iation_RFB

Re: Enregistré sur le server l'image d'une url

par yoann38 » 16 juil. 2018, 22:39

Apres je redimmensionne les photos mais je veut une originale et les photos ne sont pas issu du meme site et j'en affiche 25 Par page donc 25 requetes différente peut etre un peu long pour affiché je pense.
non ?

Re: Enregistré sur le server l'image d'une url

par or 1 » 16 juil. 2018, 22:14

http://php.net/manual/fr/function.file-get-contents.php
et
http://php.net/manual/fr/function.file-put-contents.php

si c'est pour ne rien changer à l'image, cela me semble une très mauvaise idée.

Enregistré sur le server l'image d'une url

par yoann38 » 16 juil. 2018, 21:12

Salut tout le monde, voilà j'ai décidé de cloture le sujet précédent car pas vraiment la même chose.

Enfait je récupere dans mon csv les resultat sous la forme :
$url = 'https://www.spectacles.carrefour.fr/item/manifestation/visuels/380/3806489461915670/3806489461915670990/grand/iris6146683165946568924.jpg';
Du coup je cherche à stoclé l'image sur un dossier de mon server, mais je ne vois pas du tout comment procéder.