Code source C# pour télécharger des images et générer des vignettes dans ASP.NET<FONT size=4><FONT size=4><FONT size=4>à l'aide du système ;
en utilisant System.Collections ;
en utilisant System.ComponentModel ;
en utilisant System.Data ;
en utilisant System.Drawing ;
en utilisant System.Web ;
en utilisant System.Web.SessionState ;
en utilisant System.Web.UI ;
en utilisant System.Web.UI.WebControls ;
en utilisant System.Web.UI.HtmlControls ;
en utilisant System.IO ;
en utilisant l'espace de noms System.Drawing.Imaging
eMeng.Exam
;
{
/// <résumé>
/// Description récapitulative de la vignette.
/// </summary>
Vignette de classe publique : System.Web.UI.Page
{
protégé System.Web.UI.WebControls.Label Label1 ;
protégé System.Web.UI.WebControls.Button Button1 ;
privé void Page_Load (expéditeur d'objet, System.EventArgs e)
{
//Mettez le code utilisateur ici pour initialiser la page
Label1.Text = "<h3>Facile à mettre en pratique dans ASP.NET?lt;/h3>";
Button1.Text = "Télécharger et afficher les vignettes";
}
#region Code généré par Web Form Designer
remplacer le void protégé OnInit (EventArgs e)
{
//
// CODEGEN : cet appel est requis par le concepteur ASP.NET Web Forms.
//
InitializeComponent();
base.OnInit(e);
}
/// <résumé>
/// Designer prend en charge les méthodes requises - n'utilisez pas l'éditeur de code pour modifier
/// Le contenu de cette méthode.
/// </summary>
vide privé InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load }
)
#endregion
private void Button1_Click (expéditeur de l'objet, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files ;
HttpPostedFile MyPostedFile = MyFileColl[0];
si (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
{
Response.Write("Format graphique invalide.");
retour;
}
GetThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
}
privé System.Drawing.Imaging.ImageFormat GetImageType (objet strContentType)
{
if ((strContentType.ToString().ToLower()) == "image/pjpeg")
{
retourner System.Drawing.Imaging.ImageFormat.Jpeg;
}
sinon if ((strContentType.ToString().ToLower()) == "image/gif")
{
retourner System.Drawing.Imaging.ImageFormat.Gif;
}
sinon if ((strContentType.ToString().ToLower()) == "image/bmp")
{
retourner System.Drawing.Imaging.ImageFormat.Bmp;
}
sinon if ((strContentType.ToString().ToLower()) == "image/tiff")
{
renvoyer System.Drawing.Imaging.ImageFormat.Tiff ;
}
sinon if ((strContentType.ToString().ToLower()) == "image/x-icon")
{
retourner System.Drawing.Imaging.ImageFormat.Icon;
}
sinon if ((strContentType.ToString().ToLower()) == "image/x-png")
{
retourner System.Drawing.Imaging.ImageFormat.Png;
}
sinon if ((strContentType.ToString().ToLower()) == "image/x-emf")
{
retourner System.Drawing.Imaging.ImageFormat.Emf;
}
sinon if ((strContentType.ToString().ToLower()) == "image/x-exif")
{
retourner System.Drawing.Imaging.ImageFormat.Exif;
}
sinon if ((strContentType.ToString().ToLower()) == "image/x-wmf")
{
retourner System.Drawing.Imaging.ImageFormat.Wmf;
}
autre
{
retourner System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
private void GetThumbNail(string strFileName, int iWidth, int iheight,
chaîne strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
{
System.Drawing.Image oImg;
si (blnGetFromFile)
{
oImg = System.Drawing.Image.FromFile(strFileName);
}
autre
{
oImg = System.Drawing.Image.FromStream(ImgStream);
}
oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
string strGuid = System.Guid.NewGuid().ToString().ToUpper();
string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Réponse.ContentType = strContentType ;
MemoryStream MemStream = new MemoryStream();
oImg.Save(MemStream, GetImageType(strContentType));
MemStream.WriteTo(Response.OutputStream);
}
}
}
</FONT></FONT></FONT><FONT color=#ff0000 size=4></FONT><FONT size=4>Fonction :
1. Téléchargez le fichier image (JPG GIF PNG),
2. Enregistrez dans le chemin spécifié (définissez le chemin dans web.config et enregistrez le fichier dans son format d'origine),
3. Et générer automatiquement la largeur spécifiée (définir la largeur dans web.config)
4. et format spécifié (précisez le format de la vignette dans web.config)
5. Une vignette avec les mêmes proportions que l'image originale (la hauteur de la vignette est calculée en fonction de la largeur ainsi que de la largeur et de la hauteur de l'image originale)
6. Peut déterminer si le fichier existe déjà
7. S'il n'est pas remplacé, une erreur est donnée
8. Si la case « Écraser l'image originale » est cochée, l'image originale sera écrasée.
9. Selon les besoins, plusieurs entrées de fichier et les cases à cocher correspondantes peuvent être définies sur le formulaire Web.
10. Et une fois le fichier téléchargé, le nom du fichier, sa taille, ses octets et
11. La taille du nom de fichier de la vignette.
12. Le format du nom de fichier des vignettes : image originale + "_thumb." + format spécifié, tel que : test.jpg_thumb.gif, pour une gestion facile.
-------------------
public void UploadFile (expéditeur de l'objet, System.EventArgs e)
{
chaîne imgNameOnly, imgNameNoExt, imgExt ;
chaîne imgThumbnail ;
int numéro d'erreur = 0 ;
System.Drawing.Image oriImg, newImg;
string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
chaîne fileExt;
StringBuilder picInfo = new StringBuilder();
if(Page.IsValid)
{
pour (int i = 0;i < Request.Files.Count; i++)
{
HttpPostedFile PostedFile = Request.Files[i];
fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
si(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
{
if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
{
numéro d'erreur = numéro d'erreur + 1 ;
picInfo.Append("<b>Erreur :</b>File("+ (i+1) +") " + imgNameOnly + " existe déjà, veuillez modifier le nom du fichier<br/>" );
}
}
autre
{
numéro d'erreur = numéro d'erreur + 1 ;
picInfo.Append("<b>Erreur :</b> file("+ (i+1) +") " + imgNameOnly + " extension" + fileExt + " non autorisé<br/>" );
}
}
si (numéroerreur > 0)
{
picInfo.Append("<font color=red>Toutes les opérations ne sont pas terminées, veuillez corriger les erreurs et recommencer</font><br/>");
}
autre
{
pour (int i = 0;i < Request.Files.Count; i++)
{
HttpPostedFile PostedFile = Request.Files[i];
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);
newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
commutateur (imgExt)
{
//cas ".jpeg":
cas ".jpg":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
casser;
cas ".gif":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
casser;
cas ".png":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
casser;
}
//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg
switch(strFePicThumbFormat)
;
{
// Le format jpeg peut obtenir la plus petite taille de fichier et le png est la plus grande taille
//cas "jpeg":
cas "jpg":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
casser;
cas "gif":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif" ;
casser;
cas "png":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
casser;
défaut:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;
}//switch
picInfo.Append("<b>Nom du fichier :</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br/>");
picInfo.Append("<b>Nom de la vignette :</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br/><br/>")
; Disposer();
newImg.Dispose();
}//pour
picInfo.Append("<font color=red>Toutes les opérations ont réussi</font><br/>");
}// iferronumber = 0
}
autre
{
picInfo.Append("<font color=red>Il y a une erreur, veuillez vérifier. L'opération n'a pas réussi</font><br/>"
}
lblPicInfo.Text = picInfo.ToString( })
;
</FONT>