Redimensionner automatiquement image suite a upload....

Eléphant du PHP | 108 Messages

24 juil. 2005, 13:31

Bonjour à tous,
Je viens de trouver un script pour redimensionner automatiquement les images suite a un upload. (Trouvé sur http://www.a525g.com/programmation/resi ... hp)Lorsque l'utilisateur télécharge une image, peut importe le format et la taille de celle-ci, l'image est automatiquement redimensionné à 90x130 pixels et enregistrée au format png.
Le probleme est que celui çi est en ASP et je ne connais pas ce langage.
Donc je recherche ce meme genre de script mais en PHP? ou pourriez vous me dire ce que je dois y changer.....
D'avance merci
<%@ Page Language="C#" Debug="true" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.IO" %>
<script runat="server">
void UploadBtn_Click(Object sender, EventArgs e)
{
String UploadedFile = MyFile.PostedFile.FileName;
int ExtractPos = UploadedFile.LastIndexOf("\\") + 1;

// Extraire le nom du fichier depuis le path
String UploadedFileName = UploadedFile.Substring(ExtractPos,UploadedFile.Length - ExtractPos);

// Enregistrer le fichier téléchargé sur le serveur dans le répertoire images.
// On change le nom de l'image en lui ajoutant la date du jour en début de nom
// de fichier. 
// Ceci permet d'éviter qu'un autre utilisateur télécharge une image du même nom.
DateTime rightNow = DateTime.Now;
String s = rightNow.ToString();
s = s.Replace(" ","-");
s = s.Replace(":",""); 
MyFile.PostedFile.SaveAs(Server.MapPath("/exemple") + "\\images\\" + s + UploadedFileName );

// Début de la création de la petite image (thumbnail)
try
{
// Trouver le nom de l'image dont le thumbnail doit être créé.
String imageUrl= s + UploadedFileName;
// Trouver la hauteur et la largeur de l'image.

// Spécifier une taille standard
int imageWidth1 = 0;
int imageHeight1 = 0; 
if (po.Checked) 
{
imageWidth1 = 90; 
imageHeight1 = 130;
}
if (pa.Checked) 
{
imageWidth1 = 130; 
imageHeight1 = 90;
}

if (imageUrl.IndexOf("/") >= 0 || imageUrl.IndexOf("\\") >= 0 )
{
// Il y a présence d'un / ou \
Response.End();
}

// L'image téléchargée sera emmagasinée dans le répertoire images.
// Pour que la taille de l'image soit changé, l'image originale doit être dans le dossier images.
imageUrl = "/exemple/images/" + imageUrl;
System.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(imageUrl));
System.Drawing.Image.GetThumbnailImageAbort dCallBack = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

System.Drawing.Image thumbNailImg1 = fullSizeImg.GetThumbnailImage(imageWidth1, imageHeight1, dCallBack, IntPtr.Zero);



// Enregistrer les images en format PNG
// Le format peut être ajusté en utilisant la propriété ImageFormat
thumbNailImg1.Save ( Server.MapPath("/exemple") + "\\images\\" + s + "-p.png", ImageFormat.Png);
thumbNailImg1.Dispose();

divImg.InnerHtml = "<img src=\"/exemple/images/" + s + "-p.png\" style=\"border:3px solid #999999;\" />";
}
catch(Exception ex)
{
Response.Write("Une erreur s'est produite : " + ex.ToString());
}
}
// Cette fonction est requise pour la création du thumbnail.
public bool ThumbnailCallback()
{
return false;
}
</script>

<html>
<head>
<title>A525G - Exemple d'upload et de resize d'image</title>
</head>
<body>
<form action="fileupload.php" method="post" enctype="multipart/form-data" runat="server">
<br />
<table border="1" width="95%" align="center" cellpadding="0" cellspacing="0" summary="">
<tr>
<th align="left" valign="middle" width="65%">
<span class="formulaire-texte-section-entete">
Ajout d'une image
</span>
</th>
<th align="left" valign="middle" width="35%">
 
</th>
</tr> 
<tr>
<td align="left" colspan="2" width="100%">
<br />
<table width="100%" align="center" cellspacing="0" cellpadding="5">
<tr>
<td >
<b>Sélectionnez l'image à ajouter</b>
<br />
<input name="PostedFile" type="file" id="MyFile" runat="server" />
</td>
</tr>
</table>
<br />
<table width="100%" align="center" cellspacing="0" cellpadding="5">
<tr>
<td colspan="3">
<b>Indiquez l'orientation de votre photo</b>
</td>
</tr>
<tr>
<td width="30%">&nbsp;</td> 
<td width="30%">&nbsp;</td>
<td width="40%">
 
</td>
</tr>
</table>
<table align="center" width="100%" cellpadding="3" cellspacing="0">
<tr>
<td bgcolor="#999999" align="center"><input type="submit" value="Ajouter" runat="server" onserverclick="UploadBtn_Click" /></td>
</tr>
<tr>
<td align="center"><div id="divImg" runat="server" /></td>
</tr>
</table>
</td>
</tr>
</table>

</form>
</body> 
</html>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

24 juil. 2005, 13:43

script ASP sur un forum PHP dans la partie "Base de données" =D>
Donc je recherche ce meme genre de script mais en PHP?
une petite recherche sur le forum ? ça a déjà du être évoqué
ou pourriez vous me dire ce que je dois y changer.....
tu ne dis même pas ce que tu veux faire...

Eléphant du PHP | 108 Messages

24 juil. 2005, 13:51

Désolé,
En fait, quand l'internaute insere une image sur mon site, je ne veux pas lui afficher des messages d'erreur comme "format non pris en compte ou
trop vomumineux et puis je ne voudrais pas charger l'hebergeur avec des images trop lourde.
Ces images concernent soit le logo de l'entreprise soit les articles
que l'internaute met en vente.
j'ai fouiné sur le net, mais je ne trouve pas vraiment ce que je veux.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

24 juil. 2005, 13:58

j'ai trouvé ce post sur le forum :
http://www.phpfrance.com/forums/voir_su ... dimage.php

et ce code sur le net :
http://www.phpcs.com/codes/CREATION-DE- ... 25709.aspx

sinon tu peux voir que ce type de script n'est pas très long, si tu veux le coder toi-même ce forum sera là pour t'aider ;)

Eléphant du PHP | 108 Messages

24 juil. 2005, 14:09

Je te remercie, je vais le mettre en place
@+

Francis

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juil. 2005, 14:23

Modération : ça ne concerne pas les base de données :)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.