Accueil > > > CLASS PHP 5 POUR CHARGEMENT ET REDIMENSIONNEMENT D'IMAGES (SI NÉCÉSSAIRE, POUR LES FORMATS SUPPORTÉS PAR LA GD: GIF, JPEG, PNG)
CLASS PHP 5 POUR CHARGEMENT ET REDIMENSIONNEMENT D'IMAGES (SI NÉCÉSSAIRE, POUR LES FORMATS SUPPORTÉS PAR LA GD: GIF, JPEG, PNG)
Information sur la source
Description
Comme le titre le dit, cette class sert pour charger (upload) et redimensionner les images ( seul les format gif, jpeg et png supportés par la librairie GD, pour le redimensionnement). Ce que vous aurez à faire c'est de spécifier quelques paramètres: taille_max, largeur et hauteur, extensions et formats autorisés, un préfixe et un sufixe ou un nouveau nom, puis le répertoire ou dossier où serait stocké l'image et voilà! Soyez indulgents, c'est ma première class en PHP 5 ( eh oui, je vous rejoins moi aussi ;P )et donc des critiques constructives pour améliorer le code sont les bienvenues
Source
- <?php
- ////////////////////////////////////////////////////////////////////////////////////////\
- //
- // Nom du code : Class PHP 5 pour chargement des imager + redimensionnement
- // Date de création : 27 / 01 / 2006
- // Auteur : FBNKCMaster <-|| Farid BEN KACEM ||->
- // E-mail : FBNKCMaster@hotmail.com
- //
- // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- //
- // ENJOY IT!!!
- //
- /////////////////////////////////////////////////////////////////////////////////////////\
- /////////////////////////////////////////////////////////////////////////////////////////\
-
- class charger
- {
- // On déclare les constantes
- const DEFAULT_LARGEUR = 140;
- const DEFAULT_HAUTEUR = 140;
- const DEFAULT_NV_NOM = '';
- const DEFAULT_PREFIX = 'pref_';
- const DEFAULT_SUFFIX = '_suff';
- const DEFAULT_NOM_CHAMPS = 'file';
- const DEFAULT_DESTINATION = '.';
- const DEFAULT_TAILLE_MAX = 102400; // en octet 100 * 1024 = 100 Ko
-
- // Les attribus
- private $nom_champs; // Repertoire de destination
- private $destination; // Repertoire de destination
- private $taille_max; // Taille maximale de l'image
- private $type_aut; // Tableau contenant les types d'image autorisés
- private $type; // Type du fichier encours
- private $ext_aut; // Tableau contenant les noms des extensions autorisés
- private $largeur; // Largeur de l'image
- private $hauteur; // Hauteur de l'image
- private $nv_nom; // Nouveau nom
- private $ext; // L'extension du fichier uploadé
- private $pref; // Prefixe à ajouter
- private $suff; // Sufixe à ajouter
-
- function __construct($array)
- {
- $this->largeur = self::DEFAULT_LARGEUR;
- $this->hauteur = self::DEFAULT_HAUTEUR;
- $this->nv_nom = self::DEFAULT_NV_NOM;
- $this->pref = self::DEFAULT_PREFIX;
- $this->suff = self::DEFAULT_SUFFIX;
- $this->nom_champs = self::DEFAULT_NOM_CHAMPS;
- $this->destination = self::DEFAULT_DESTINATION;
- $this->taille_max = self::DEFAULT_TAILLE_MAX;
- $this->type_aut = array('1', '2', '3'); // Types d'image autorisés: 1 = GIF, 2 = JPG, 3 = PNG...
- $this->ext_aut = array('gif', 'jpg', 'png', 'bmp'); // Les extensions autorisées
-
- if(isset($array) && is_array($array))
- {
- foreach($array as $c => $v)
- {
- $this->$c = $v;
- }
- }
- }
-
- function executer()
- {
- if($this->existe() === false)
- {
- throw new Exception('Il n\'y a pas de fichier à charger!');
- }
-
- if($this->extension() === false)
- {
- throw new Exception('Ce type de fichier n\'est pas autorisé!');
- }
-
- if($this->type() === false)
- {
- throw new Exception('Ce type de fichier n\'est pas autorisé!');
- }
-
- if($this->poids() === false)
- {
- throw new Exception('Le poid de l\'image est supérieur à '.($this->taille_max/1024).' Ko');
- }
-
- if($this->dim() === false)
- {
- if($this->redim() === false)
- {
- throw new Exception('La largeur/hauteur de l\'image est grande!');
- }
- }
- else
- {
- if($this->copier() === false)
- {
- throw new Exception('Erreur lors de la copie du fichier');
- }
- }
- }
-
- function existe()
- {
- // D'abord on vérifie si le fichier existe, s'il est uploadé en mémoire
- // Si le fichier existe dans le dossier tmp...
- if(!empty($_FILES[$this->nom_champs]['tmp_name']) && is_uploaded_file($_FILES[$this->nom_champs]['tmp_name']))
- {
- return true;
- }
- else
- {
- // Sinon on affiche l'erreur
- return false;
- }
- }
-
- function extension()
- {
- // On récupère l'extension
- $this->ext = substr(strrchr($_FILES[$this->nom_champs]['name'], '.'), 1);
- // Et on vérifie si elle figure parmis les extensions autorisées
- if(!empty($this->ext) && in_array($this->ext, $this->ext_aut))
- {
- return true;
- }
- else
- {
- // Sinon on affiche l'erreur
- return false;
- }
- }
-
- function type()
- {
- // On vérifie maintenant le type de l'image à l'aide de la fonction getimagesize()
- list($largeur, $hauteur, $this->type) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
-
- // Si le $this->type de l'image figure parmis ceux autorisés
- if(in_array($this->type, $this->type_aut))
- {
- return true;
- }
- else
- {
- // Sinon: "Le type de fichier est incorrect!!", on affiche l'erreur
- return false;
- }
- }
-
- function poids()
- {
- //On vérifie la taille (le poids) du fichier avec "filesize()" pour plus de sécurité encore
- if(filesize($_FILES[$this->nom_champs]['tmp_name']) < $this->taille_max)
- {
- return true;
- }
- else
- {
- // Sinon on affiche l'erreur
- return false;
- }
- }
-
- function dim()
- {
- // On vérifie maintenant les dimensions de l'image à l'aide de la fonction getimagesize()
- list($largeur, $hauteur) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
-
- if($largeur <= $this->largeur && $hauteur <= $this->hauteur)
- {
- return true;
- }
- else
- {
- // Sinon on affiche l'erreur
- return false;
- }
- }
-
- function redim()
- {
- //On essaye de redimensionner
- // On vérifie d'abord si la librairie GD est activée
- if(extension_loaded('gd'))
- {
- // Si oui, on lance la méthode pour redimensionner
- // Calcule des nouvelles dimensions
- list($largeur_orig, $hauteur_orig) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
- // Un peu des mathématiques...
- if($largeur_orig > $this->largeur || $hauteur_orig > $this->hauteur)
- {
- if($largeur_orig >= $hauteur_orig)
- {
- $coef = $largeur_orig / $hauteur_orig;
- $largeur = $this->largeur;
- $hauteur = ceil($this->hauteur / $coef);
- }
- else
- {
- $coef = $hauteur_orig / $largeur_orig;
- $hauteur = $this->hauteur;
- $largeur = ceil($this->largeur / $coef);
- }
- }
- else
- {
- $largeur = $this->largeur;
- $hauteur = $this->hauteur;
- }
- // Redimensionnement
- //copie avec la fonction "imagejpeg" pour le format jpg, "imagepng" pour les png et "imagegif" pour les gif. Les formats les plus utilisés et qui sont supportés par la gd
- // $this->renommer(): cette méthode retourne le nouveau nom s'il est mentionné sinon retourne le nom original
- switch ($this->type)
- {
- case 1 :
- $image_finale = imagecreatetruecolor($largeur, $hauteur);
- $image_orig = imagecreatefromgif($_FILES[$this->nom_champs]['tmp_name']);
- imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
- if(!@imagegif($image_finale, $this->destination.'/'.$this->renommer()))
- {
- // Si c'est pas réussi on affiche l'erreur
- return false;
- }// Sinon le fichier a été uploadé et redimensionné correctement!!
- break;
-
- case 2 :
- $image_finale = imagecreatetruecolor($largeur, $hauteur);
- $image_orig = imagecreatefromjpeg($_FILES[$this->nom_champs]['tmp_name']);
- imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
-
- if(!@imagejpeg($image_finale, $this->destination.'/'.$this->renommer()))
- {
- // Si c'est pas réussi on affiche l'erreur
- return false;
- }// Sinon le fichier a été uploadé et redimensionné correctement!!
- break;
-
- case 3 :
- $image_finale = imagecreatetruecolor($largeur, $hauteur);
- $image_orig = imagecreatefrompng($_FILES[$this->nom_champs]['tmp_name']);
- imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
-
- if(!@imagepng($image_finale, $this->destination.'/'.$this->renommer()))
- {
- // Si c'est pas réussi on affiche l'erreur
- return false;
- }// Sinon le fichier a été uploadé et redimensionné correctement!!
- break;
- }
- }
- }
-
- function copier()
- {
- // On copie le fichier dans le répertoire de destination
- // $this->renommer(): cette méthode retourne le nouveau nom s'il est mentionné sinon retourne le nom original
- if(!@move_uploaded_file($_FILES[$this->nom_champs]['tmp_name'], $this->destination.'/'.$this->renommer()))
- {
- // Erreur lors de la copie..
- //throw new Exception('Erreur lors de la copie du fichier');
- return false;
- }// Sinon le fichier a été uploadé correctement
- }
-
- function renommer()
- {
- // On renomme le fichier si le nouveau nom est fourni sinon on laisse
- ($this->nv_nom == '')?$this->nv_nom = $_FILES[$this->nom_champs]['name']:$this->nv_nom = $this->nv_nom.'.'.$this->ext;
- // On récupère le nom du fichier sans l'extension
- list($nom_sans_ext, $ext) = explode('.', $this->nv_nom);
- // On ajoute le sufixe s'il est mentionné
- ($this->suff == '')?$this->nv_nom = $this->nv_nom:$this->nv_nom = $nom_sans_ext.$this->suff.'.'.$this->ext;
- // On ajoute le préfixe s'il est mentionné
- ($this->pref == '')?$this->nv_nom = $this->nv_nom:$this->nv_nom = $this->pref.$this->nv_nom;
- return $this->nv_nom;
- }
- }
- ?>
<?php
////////////////////////////////////////////////////////////////////////////////////////\
//
// Nom du code : Class PHP 5 pour chargement des imager + redimensionnement
// Date de création : 27 / 01 / 2006
// Auteur : FBNKCMaster <-|| Farid BEN KACEM ||->
// E-mail : FBNKCMaster@hotmail.com
//
// |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
//
// ENJOY IT!!!
//
/////////////////////////////////////////////////////////////////////////////////////////\
/////////////////////////////////////////////////////////////////////////////////////////\
class charger
{
// On déclare les constantes
const DEFAULT_LARGEUR = 140;
const DEFAULT_HAUTEUR = 140;
const DEFAULT_NV_NOM = '';
const DEFAULT_PREFIX = 'pref_';
const DEFAULT_SUFFIX = '_suff';
const DEFAULT_NOM_CHAMPS = 'file';
const DEFAULT_DESTINATION = '.';
const DEFAULT_TAILLE_MAX = 102400; // en octet 100 * 1024 = 100 Ko
// Les attribus
private $nom_champs; // Repertoire de destination
private $destination; // Repertoire de destination
private $taille_max; // Taille maximale de l'image
private $type_aut; // Tableau contenant les types d'image autorisés
private $type; // Type du fichier encours
private $ext_aut; // Tableau contenant les noms des extensions autorisés
private $largeur; // Largeur de l'image
private $hauteur; // Hauteur de l'image
private $nv_nom; // Nouveau nom
private $ext; // L'extension du fichier uploadé
private $pref; // Prefixe à ajouter
private $suff; // Sufixe à ajouter
function __construct($array)
{
$this->largeur = self::DEFAULT_LARGEUR;
$this->hauteur = self::DEFAULT_HAUTEUR;
$this->nv_nom = self::DEFAULT_NV_NOM;
$this->pref = self::DEFAULT_PREFIX;
$this->suff = self::DEFAULT_SUFFIX;
$this->nom_champs = self::DEFAULT_NOM_CHAMPS;
$this->destination = self::DEFAULT_DESTINATION;
$this->taille_max = self::DEFAULT_TAILLE_MAX;
$this->type_aut = array('1', '2', '3'); // Types d'image autorisés: 1 = GIF, 2 = JPG, 3 = PNG...
$this->ext_aut = array('gif', 'jpg', 'png', 'bmp'); // Les extensions autorisées
if(isset($array) && is_array($array))
{
foreach($array as $c => $v)
{
$this->$c = $v;
}
}
}
function executer()
{
if($this->existe() === false)
{
throw new Exception('Il n\'y a pas de fichier à charger!');
}
if($this->extension() === false)
{
throw new Exception('Ce type de fichier n\'est pas autorisé!');
}
if($this->type() === false)
{
throw new Exception('Ce type de fichier n\'est pas autorisé!');
}
if($this->poids() === false)
{
throw new Exception('Le poid de l\'image est supérieur à '.($this->taille_max/1024).' Ko');
}
if($this->dim() === false)
{
if($this->redim() === false)
{
throw new Exception('La largeur/hauteur de l\'image est grande!');
}
}
else
{
if($this->copier() === false)
{
throw new Exception('Erreur lors de la copie du fichier');
}
}
}
function existe()
{
// D'abord on vérifie si le fichier existe, s'il est uploadé en mémoire
// Si le fichier existe dans le dossier tmp...
if(!empty($_FILES[$this->nom_champs]['tmp_name']) && is_uploaded_file($_FILES[$this->nom_champs]['tmp_name']))
{
return true;
}
else
{
// Sinon on affiche l'erreur
return false;
}
}
function extension()
{
// On récupère l'extension
$this->ext = substr(strrchr($_FILES[$this->nom_champs]['name'], '.'), 1);
// Et on vérifie si elle figure parmis les extensions autorisées
if(!empty($this->ext) && in_array($this->ext, $this->ext_aut))
{
return true;
}
else
{
// Sinon on affiche l'erreur
return false;
}
}
function type()
{
// On vérifie maintenant le type de l'image à l'aide de la fonction getimagesize()
list($largeur, $hauteur, $this->type) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
// Si le $this->type de l'image figure parmis ceux autorisés
if(in_array($this->type, $this->type_aut))
{
return true;
}
else
{
// Sinon: "Le type de fichier est incorrect!!", on affiche l'erreur
return false;
}
}
function poids()
{
//On vérifie la taille (le poids) du fichier avec "filesize()" pour plus de sécurité encore
if(filesize($_FILES[$this->nom_champs]['tmp_name']) < $this->taille_max)
{
return true;
}
else
{
// Sinon on affiche l'erreur
return false;
}
}
function dim()
{
// On vérifie maintenant les dimensions de l'image à l'aide de la fonction getimagesize()
list($largeur, $hauteur) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
if($largeur <= $this->largeur && $hauteur <= $this->hauteur)
{
return true;
}
else
{
// Sinon on affiche l'erreur
return false;
}
}
function redim()
{
//On essaye de redimensionner
// On vérifie d'abord si la librairie GD est activée
if(extension_loaded('gd'))
{
// Si oui, on lance la méthode pour redimensionner
// Calcule des nouvelles dimensions
list($largeur_orig, $hauteur_orig) = getimagesize($_FILES[$this->nom_champs]['tmp_name']);
// Un peu des mathématiques...
if($largeur_orig > $this->largeur || $hauteur_orig > $this->hauteur)
{
if($largeur_orig >= $hauteur_orig)
{
$coef = $largeur_orig / $hauteur_orig;
$largeur = $this->largeur;
$hauteur = ceil($this->hauteur / $coef);
}
else
{
$coef = $hauteur_orig / $largeur_orig;
$hauteur = $this->hauteur;
$largeur = ceil($this->largeur / $coef);
}
}
else
{
$largeur = $this->largeur;
$hauteur = $this->hauteur;
}
// Redimensionnement
//copie avec la fonction "imagejpeg" pour le format jpg, "imagepng" pour les png et "imagegif" pour les gif. Les formats les plus utilisés et qui sont supportés par la gd
// $this->renommer(): cette méthode retourne le nouveau nom s'il est mentionné sinon retourne le nom original
switch ($this->type)
{
case 1 :
$image_finale = imagecreatetruecolor($largeur, $hauteur);
$image_orig = imagecreatefromgif($_FILES[$this->nom_champs]['tmp_name']);
imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
if(!@imagegif($image_finale, $this->destination.'/'.$this->renommer()))
{
// Si c'est pas réussi on affiche l'erreur
return false;
}// Sinon le fichier a été uploadé et redimensionné correctement!!
break;
case 2 :
$image_finale = imagecreatetruecolor($largeur, $hauteur);
$image_orig = imagecreatefromjpeg($_FILES[$this->nom_champs]['tmp_name']);
imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
if(!@imagejpeg($image_finale, $this->destination.'/'.$this->renommer()))
{
// Si c'est pas réussi on affiche l'erreur
return false;
}// Sinon le fichier a été uploadé et redimensionné correctement!!
break;
case 3 :
$image_finale = imagecreatetruecolor($largeur, $hauteur);
$image_orig = imagecreatefrompng($_FILES[$this->nom_champs]['tmp_name']);
imagecopyresized($image_finale, $image_orig, 0, 0, 0, 0, $largeur, $hauteur, $largeur_orig, $hauteur_orig);
if(!@imagepng($image_finale, $this->destination.'/'.$this->renommer()))
{
// Si c'est pas réussi on affiche l'erreur
return false;
}// Sinon le fichier a été uploadé et redimensionné correctement!!
break;
}
}
}
function copier()
{
// On copie le fichier dans le répertoire de destination
// $this->renommer(): cette méthode retourne le nouveau nom s'il est mentionné sinon retourne le nom original
if(!@move_uploaded_file($_FILES[$this->nom_champs]['tmp_name'], $this->destination.'/'.$this->renommer()))
{
// Erreur lors de la copie..
//throw new Exception('Erreur lors de la copie du fichier');
return false;
}// Sinon le fichier a été uploadé correctement
}
function renommer()
{
// On renomme le fichier si le nouveau nom est fourni sinon on laisse
($this->nv_nom == '')?$this->nv_nom = $_FILES[$this->nom_champs]['name']:$this->nv_nom = $this->nv_nom.'.'.$this->ext;
// On récupère le nom du fichier sans l'extension
list($nom_sans_ext, $ext) = explode('.', $this->nv_nom);
// On ajoute le sufixe s'il est mentionné
($this->suff == '')?$this->nv_nom = $this->nv_nom:$this->nv_nom = $nom_sans_ext.$this->suff.'.'.$this->ext;
// On ajoute le préfixe s'il est mentionné
($this->pref == '')?$this->nv_nom = $this->nv_nom:$this->nv_nom = $this->pref.$this->nv_nom;
return $this->nv_nom;
}
}
?>
Conclusion
////////////// Exemple d'utilisation //////////////
---------- page charger.html ---------
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t itle> CLASS CHARGER IMAGES AVEC REDIMENSION </title> </head> <body> <div align="center"> <form action="charger.php" method="post" enctype="multipart/form-data"> <input type="file" name="fichier" /> <br /> <input type="submit" value="Envoyer" /> </form> </div> </body> </html>
--------- - page charger.php ---------
<?php require_once('charger.class.php') ; // On prépare les paramètres pour les faire passer $nom_champs = 'fichier'; // le nom du champs $nv_nom = 'fbnkcmaster'; // nouveau nom pour renommer $pref = 'abc_'; // prefixe à ajouter $suf = '_01'; // sufixe à ajouter // Sous forme d'un tableau $array = array('nom_champs' => $nom_champs, 'nv_nom' => $nv_nom, 'pref' => $pref, 'suf' => $suf); // On instancie la classe // $charger = new charger(); pour laisser les paramètres par défauts $charger = new charger($array); // gestion des Exceptions try... catch... try { $charger->executer(); echo 'L\'image a été chargée avec succès!'; } catch(Exception $e) { echo $e->getMessage(); } ?>
////////////////////////// /////////////////////
Vos suggestions et commentaires sont les bienvenus.
Historique
- 28 janvier 2006 16:54:23 :
- -Utilisation des Exceptions try{} catch(){}
-Réduction du nombre de paramètres passés
- 06 février 2006 12:37:54 :
- Optimisation du code...
- 06 février 2006 13:05:46 :
- petite rectification (&& à la place de AND oublié...)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
upload d'images [ par psychodingue ]
salut tout le monde,moi j'ai un gros prob.J'ai fait un site pour une entreprise qui vend du matos info, et donc dedant y'a une administration pour ajo
upload images php 4 [ par mariuscesar ]
salut , j'ai un pb svp. en fait mon hénergeur est passé à php 4.3.6 et je n'arrive pas à uploader les fichiers comme au paravent. ke faire ???
upload d'images [ par G_ki_aime_pas_le_php ]
Salut à tous!G un petit problème j'essaie d'uploader un fichier et ça fonctionne pas.G TOUT essayé j'en ai marre!Est ce que quelqu'un aurait la soluti
Probleme upload page html et dossier des images de la page [ par dejanom70 ]
Salut a tous,je voudrais savoir comment je pourrais envoyer une page html et toutes les images qui vont avec sur un serveur ftp en un seul coup. Je sa
Variable dans une URL [ par L0rD59 ]
Bonjours j'ai un petit souci avec une variable et une URLje vous explique le contexte J'ai une fichier PHP qui permet d'upload des image (grace au bou
Upload , nom d'image, BDD mysql [ par Grumo ]
Bonjour à tous,voilà je me suis constitué un petit formulaire me permettant d'uploader des images dans une bdd msql (enfin leur n
Pb d'upload d'images [ par devillersdavid ]
Bonjour à tous,J'arrive à uploader correctement certaines images sur mon site mais d'autres sont mal uploadées.J'utilise le script du s
Redimensionner des images lors de l'upload [ par Drazounet ]
Hello à tous, Je commence à manipuler des images pour la première fois, et je trouve que c'est assez complexe... J'ai beaucoup cherch
Problème de chargement d'images dans page web [ par LeilaNice ]
Bonjour à tous,je suis en formation et j'ai un site à créer pour mon exam. J'ai créé mon interface sous photoshop que j'ai d&
wamp+upload des images [ par imaneflash ]
comment faire l upload des images je veux les stocker sur mon disque dur c posssible!?
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|