begin process at 2012 05 30 23:15:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Enregistrement automatique sur un serveur d'une image en ligne


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Enregistrement automatique sur un serveur d'une image en ligne

jeudi 19 mai 2011 à 12:01:45 | Enregistrement automatique sur un serveur d'une image en ligne

julien2424


Bonjour à tous

Je suis débutant en php, mais vraiment, vraiment :D
Ce que je souhaiterai faire, c'est récupérer automatiquement (sans bouton parcourir) une image stockée sur un site distant(avec son URL) et pouvoir l'enregistrer sur mon serveur dans un dossier spécifique.
Après coup, quand l'image est actualisée sur l'url du site distant, que celle enregistrée sur mon serveur puisse être écrite par dessus pour la tenir à jour.

C'est possible?
Car ça fait des jours et des jours que je cherche, et je trouve que des lignes de codes avec de bouton parcourir.

Merci beaucoup de votre aide

Jules
jeudi 19 mai 2011 à 12:12:51 | Re : Enregistrement automatique sur un serveur d'une image en ligne

syndrael

Et dans ton code HTML tu ne peux pas pointer sur l'URL de cette image distante ? C'est peut-être la façon la plus simple. Quel est l'avantage de l'avoir sur ton serveur ?
S.
jeudi 19 mai 2011 à 12:21:34 | Re : Enregistrement automatique sur un serveur d'une image en ligne

julien2424

Actuellement, c'est ce que je fais, mais le problème c'est qu'il y a 15 images, assez lourdes qui par un script, s'anime les une à la suite des autres, et change toute les 1 sec.
Certaines sont tellement lourdes qu'elle ne se charge pas dans le temps imparti et l'animation passe direct à la suivante.
De plus, les images sont rechargée par le navigateur à chaque fois, même la boucle achevée.

Je pense qu'en les enregistrant sur mon serveur, il n'y aurais plus d'images "sautés" puisqu'elle n'aurais pas a être téléchargée à chaque fois?


Jules
jeudi 19 mai 2011 à 13:07:46 | Re : Enregistrement automatique sur un serveur d'une image en ligne

syndrael

Ou alors tu utilises Javascript.
1. tu lances une attente coté affichage graphique
2. pendant ce temps tu mets en cache tes images ?
3. tu affiches les images en cache de ton navigateur
S.
jeudi 19 mai 2011 à 13:13:48 | Re : Enregistrement automatique sur un serveur d'une image en ligne

julien2424


Ah pourquoi pas. ;)

Bon je suis pas plus futé en javascript qu'en php

Mon code actuel est:
Code Javascript :
<script>
var pictureArchive= ['http://www.siteweb.fr','http://www.siteweb.fr'];
 
window.onload=function() {
var o=document.createElement('img');
o.setAttribute('id', 'image');
o.setAttribute('src', pictureArchive[0]);
o.setAttribute('alt', '');
document.body.appendChild(o);
rotate(pictureArchive.length);
}
 
function rotate(idx) {
if(idx>=pictureArchive.length) {
idx=0;
}
document.getElementById('image').src=pictureArchive[idx++];
timerID=setTimeout('rotate('+idx+')', 1000);
}
</script>
jeudi 19 mai 2011 à 14:31:36 | Re : Enregistrement automatique sur un serveur d'une image en ligne

cod57

Réponse acceptée !

bonjour

les propositions de syndrael sont je crois les plus simples et evidentes
mais si tu veux faire un script j'ai bricolé ça vite fait pour une image
pour 25 images faudra faire une boucle ... pas le temps

Code PHP :
<?php

 if( !ini_get('safe_mode') ){ 
            set_time_limit(500); 
        }
/*
http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
http://www.codeartistique.com/2009/01/08/connaitre-le-poids-dun-fichier-distant-utile-en-php-4x.html
*/

/*tu peux enlever cette fonction c'est juste pour le poids ...*/
function Remote_Filesize($url) {
        $sch = parse_url($url, PHP_URL_SCHEME);
        if (($sch != "http") && ($sch != "https") && ($sch != "ftp") && ($sch
!= "ftps")) {
            return false;
        }
        if (($sch == "http") || ($sch == "https")) {
            $headers = @get_headers($url, 1);
            if (!is_array($headers)){$headers=array();}
            if ((!array_key_exists("Content-Length", $headers))) { return
false; }
            return $headers["Content-Length"];
        }
        if (($sch == "ftp") || ($sch == "ftps")) {
            $server = parse_url($url, PHP_URL_HOST);
            $port = parse_url($url, PHP_URL_PORT);
            $path = parse_url($url, PHP_URL_PATH);
            $user = parse_url($url, PHP_URL_USER);
            $pass = parse_url($url, PHP_URL_PASS);
            if ((!$server) || (!$path)) { return false; }
            if (!$port) { $port = 21; }
            if (!$user) { $user = "anonymous"; }
            if (!$pass) { $pass = "phpos@"; }
            switch ($sch) {
                case "ftp":
                    $ftpid = ftp_connect($server, $port);
                    break;
                case "ftps":
                    $ftpid = ftp_ssl_connect($server, $port);
                    break;
            }
            if (!$ftpid) { return false; }
            $login = ftp_login($ftpid, $user, $pass);
            if (!$login) { return false; }
            $ftpsize = ftp_size($ftpid, $path);
            ftp_close($ftpid);
            if ($ftpsize == -1) { return false; }
            return $ftpsize;
        }
    }
 
/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
* 
* This program is free software; you can redistribute it and/or 
* modify it under the terms of the GNU General Public License 
* as published by the Free Software Foundation; either version 2 
* of the License, or (at your option) any later version.
* 
* This program is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* GNU General Public License for more details: 
* http://www.gnu.org/licenses/gpl.html
*
*/
 
class SimpleImage {
   
   var $image;
   var $image_type;
 
   function load($filename) {
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image,$filename);         
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image,$filename);
      }   
      if( $permissions != null) {
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image);         
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image);
      }   
   }
   function getWidth() {
      return imagesx($this->image);
   }
   function getHeight() {
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   }
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100; 
      $this->resize($width,$height);
   }
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;   
   }      
}
/*ton rep de stockage*/
$rep='mini';
if(file_exists($rep)){
}else{
mkdir($rep,chmod($rep, 755)); /*yo unix seulement*/
}

/*1 à 25 faire une boucle */
$f='http://upload.wikimedia.org/wikipedia/commons/archive/3/3c/20090824120448!Nicolas_Sarkozy_(2008).jpg';
$i=explode('/',$f);
$x=(count($i)-1);
echo '<pre>';
print_r($i);
echo '</pre>';
echo $img=$i[$x];

$n=$rep.'/'.$img;
if(file_exists($rep.'/'.$img)){
//on fait rien il existe
}else{
//$file = file_get_contents ($f); 
/*
echo '<pre>';
$r2=getimagesize($f);
$r3=Remote_Filesize($f);
print_r($r2);
print_r($r3);
echo ' OCTETS ';
echo '</pre>';
*/ 

/*on redimensionne et enregistre*/ 
   $image = new SimpleImage();
   $image->load($f);
   $image->resizeToHeight(480);
   $image->save($n);    
   
   echo 'reussi';
}
?>



Bonne programmation !


Cette discussion est classée dans : ligne, enregistrement, image, serveur, automatique


Répondre à ce message

Sujets en rapport avec ce message

Enregistrement d'une image sur le serveur [ par MHI ] Bonjour, J'aimerai mettre sur mon site la possibilité à une personne d'ajouter une image sur le site.Comment fait-on pour proposer une zone de texte a Supression automatique MySQL [ par chatainsim ] Bonsoir, j'aurais aimer savoir si il est possible de supprimer automatiquement une ligne MySQL Je m'explique : En fait il faudrais pouvoir compter le Enregistrement d'image depuis un sous dossier. [ par needle ] Salut tous le monde!!! Voila j'expose mon cas: J'upload une image et la redimensionne avant de l'enregistrer sur le serveur (free) pour cela j'utilise Image,upload et unlink [ par Steph666 ] Bonjour à tous,Existe-t-il un moyen de supprimer une image uploadée sur le serveur lorsque l'utilisateur ferme de façon intempestive son navigateur, e Fichier texte [Saut de ligne] [ par lolorenzeb ] Salut tous le monde, voila j'ai un gros souci avec l'insertion de données dans in fichier texte. En fait j'arrive bien à insérer des données mais le Compression d'image automatique [ par w_minisplash_w ] Salut all, C'est le premier message que je dépose alors je vais essayer d'être clair... Je vous expose le problème: Je veux gérer un systè effacer une image d'un serveur par php [ par astro58 ] bonjour,j'aimerai savoir s'il existe une fonction php pour effacer une image d'un serveur à distance dans une partie admin d'un site. Je sais les uplo Tester si un server est en ligne !!!! [ par FearBlue ] Slt a tous !!!!Je réalise un scripts tres simple afin de savoir via une page web si mon server est en ligne Rien de bien sorcier mais g un probleme vo tester serveur [ par supergrey ] Bonjour, dans une page php j'affiche une image provenant d'un autre serveur après l'avoir redimensionnée. Le probleme c'est que le serveur en question fonction d'enregistrement automatique [ par Jey101 ] Bonjour,Est il possible, à l'aide d'une fonction d'enregistrer automatiquement des pages créées en php ?En fait dans mon projet, je vais differents ca


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales