Envoyé par unreal
Si vous avez un téléphone mobile qui prend des photos, vous avez peut-être déjà voulu envoyer ses photos directement sur votre site Web. Ce petit tutorial vous explique comment faire.
La galerie
Si vous choisissez d'utiliser une galerie (parce qu'il est tout à fait possible d'afficher les photos via une banale page avec les index activés), il faut utiliser une galerie qui supporte les uploads sans passer par l'interface d'admin. Zen Photo en est un bon choix.
Le script magique
Le script nécessite ripmime pour extraire les images de l'email encodé ; commencez donc par l'installer.
Après cela, vous pouvez sauvez le script suivant sur le disque, par exemple : /usr/local/bin/photoimport.sh
La configuration email
Les photos étant envoyées en pièce jointe par email, il est souhaitable de créer une adresse dédiée à la réception des photos, boitephoto@domaine.com par exemple. Toutefois il est faisable de créer un alias vers une autre boite, par exemple :
N'oubliez pas de régénérer le fichier d'alias binaire !
Dans tous les cas, nous utiliserons Procmail pour réceptionner les mails.
Editez ~/.procmailrc :
Ces lignes permettent de piper le mail dans le script qui extrait et copie les images.
Action !
Prenez une photo et l'envoyez à l'adresse définie. Elle devrait apparaître après quelques instants dans la galerie.
La galerie
Si vous choisissez d'utiliser une galerie (parce qu'il est tout à fait possible d'afficher les photos via une banale page avec les index activés), il faut utiliser une galerie qui supporte les uploads sans passer par l'interface d'admin. Zen Photo en est un bon choix.
Le script magique
Le script nécessite ripmime pour extraire les images de l'email encodé ; commencez donc par l'installer.
Après cela, vous pouvez sauvez le script suivant sur le disque, par exemple : /usr/local/bin/photoimport.sh
#!/bin/bash
COPYTO=/chemin/vers/galerie
TMPDIR=/tmp
cat > $TMPDIR/stdin.$$
if [ ! -d $TMPDIR/ripmime ]; then
mkdir $TMPDIR/ripmime
fi
cat $TMPDIR/stdin.$$ | /usr/local/bin/ripmime --no-nameless --prefix -i - -d $TMPDIR/ripmime
rm -f $TMPDIR/stdin.$$
TIMESTAMP=`date +%Y%m%d%H%M%S`
cd $TMPDIR/ripmime
JPGCOPY=`ls *.jpg *.JPG 2>/dev/null | sed 's/ /@@@/g'`
for ONEJPG in $JPGCOPY; do
ONEJPGSP=`echo -n $ONEJPG | sed 's/@@@/ /g'`
ONEJPG_=`echo -n $ONEJPG | sed 's/@@@/_/g'`
mv "$TMPDIR/ripmime/$ONEJPGSP" $COPYTO/$TIMESTAMP-$ONEJPG_ 2>/dev/null
done
chmod 755 $COPYTO/* 2>/dev/null
COPYTO=/chemin/vers/galerie
TMPDIR=/tmp
cat > $TMPDIR/stdin.$$
if [ ! -d $TMPDIR/ripmime ]; then
mkdir $TMPDIR/ripmime
fi
cat $TMPDIR/stdin.$$ | /usr/local/bin/ripmime --no-nameless --prefix -i - -d $TMPDIR/ripmime
rm -f $TMPDIR/stdin.$$
TIMESTAMP=`date +%Y%m%d%H%M%S`
cd $TMPDIR/ripmime
JPGCOPY=`ls *.jpg *.JPG 2>/dev/null | sed 's/ /@@@/g'`
for ONEJPG in $JPGCOPY; do
ONEJPGSP=`echo -n $ONEJPG | sed 's/@@@/ /g'`
ONEJPG_=`echo -n $ONEJPG | sed 's/@@@/_/g'`
mv "$TMPDIR/ripmime/$ONEJPGSP" $COPYTO/$TIMESTAMP-$ONEJPG_ 2>/dev/null
done
chmod 755 $COPYTO/* 2>/dev/null
La configuration email
Les photos étant envoyées en pièce jointe par email, il est souhaitable de créer une adresse dédiée à la réception des photos, boitephoto@domaine.com par exemple. Toutefois il est faisable de créer un alias vers une autre boite, par exemple :
/etc/mail/aliases
boitephoto: autrecompte
boitephoto: autrecompte
N'oubliez pas de régénérer le fichier d'alias binaire !
Dans tous les cas, nous utiliserons Procmail pour réceptionner les mails.
Editez ~/.procmailrc :
:0H
* ^TO.*boitephoto@domaine.com
|/usr/local/bin/photoimport.sh
* ^TO.*boitephoto@domaine.com
|/usr/local/bin/photoimport.sh
Ces lignes permettent de piper le mail dans le script qui extrait et copie les images.
Action !
Prenez une photo et l'envoyez à l'adresse définie. Elle devrait apparaître après quelques instants dans la galerie.
Posté le 04/12/08 à 16:06