C#-Quellcode zum Hochladen von Bildern und Generieren von Miniaturansichten in ASP.NET<FONT size=4><FONT size=4><FONT size=4>using System;
Verwenden von System.Collections;
mit System.ComponentModel;
Verwenden von System.Data;
Verwenden von System.Drawing;
mit System.Web;
using System.Web.SessionState;
mit System.Web.UI;
mit System.Web.UI.WebControls;
mit System.Web.UI.HtmlControls;
mit System.IO;
mit System.Drawing.Imaging;
Namespace eMeng.Exam
{
/// <Zusammenfassung>
/// Zusammenfassende Beschreibung des Miniaturbilds.
/// </summary>
Miniaturansicht der öffentlichen Klasse: System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button1;
private void Page_Load(object sender, System.EventArgs e)
{
//Geben Sie hier den Benutzercode ein, um die Seite zu initialisieren
Label1.Text = "<h3>Einfach in ASP.NET zu üben?lt;/h3>";
Button1.Text = "Miniaturansichten hochladen und anzeigen";
}
#region Von Web Form Designer generierter Code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: Dieser Aufruf wird vom ASP.NET Web Forms-Designer benötigt.
//
InitializeComponent();
base.OnInit(e);
}
/// <Zusammenfassung>
/// Designer unterstützt erforderliche Methoden – verwenden Sie zum Ändern keinen Code-Editor
/// Der Inhalt dieser Methode.
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
HttpPostedFile MyPostedFile = MyFileColl[0];
if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
{
Response.Write("Ungültiges Grafikformat.");
zurückkehren;
}
GetThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
}
privat System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
{
if ((strContentType.ToString().ToLower()) == "image/pjpeg")
{
return System.Drawing.Imaging.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "image/gif")
{
return System.Drawing.Imaging.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "image/bmp")
{
return System.Drawing.Imaging.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "image/tiff")
{
return System.Drawing.Imaging.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "image/x-icon")
{
return System.Drawing.Imaging.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "image/x-png")
{
return System.Drawing.Imaging.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "image/x-emf")
{
return System.Drawing.Imaging.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "image/x-exif")
{
return System.Drawing.Imaging.ImageFormat.Exif;
}
else if ((strContentType.ToString().ToLower()) == "image/x-wmf")
{
return System.Drawing.Imaging.ImageFormat.Wmf;
}
anders
{
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
private void GetThumbNail(string strFileName, int iWidth, int iheight,
string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
{
System.Drawing.Image oImg;
if (blnGetFromFile)
{
oImg = System.Drawing.Image.FromFile(strFileName);
}
anders
{
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("."));
Response.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>Funktion:
1. Laden Sie die Bilddatei hoch (JPG GIF PNG),
2. Im angegebenen Pfad speichern (den Pfad in web.config festlegen und die Datei im Originalformat speichern),
3. Und generiert automatisch die angegebene Breite (legen Sie die Breite in web.config fest).
4. und angegebenes Format (geben Sie das Miniaturbildformat in web.config an)
5. Ein Miniaturbild mit den gleichen Proportionen wie das Originalbild (die Höhe des Miniaturbilds wird basierend auf der Breite sowie der Breite und Höhe des Originalbilds berechnet)
6. Kann feststellen, ob die Datei bereits vorhanden ist
7. Wenn es nicht überschrieben wird, wird ein Fehler ausgegeben
8. Wenn das Kontrollkästchen „Originalbild überschreiben“ aktiviert ist, wird das Originalbild überschrieben.
9. Je nach Bedarf können im Webformular mehrere Dateieingaben und entsprechende Checkboxen gesetzt werden.
10. Und nachdem die Datei hochgeladen wurde, werden der Dateiname, die Größe, die Bytes usw. angezeigt
11. Die Dateinamengröße der Miniaturansicht.
12. Das Dateinamenformat der Miniaturansichten: Originalbild + „_thumb.“ + angegebenes Format, wie zum Beispiel: test.jpg_thumb.gif, zur einfachen Verwaltung.
-------------------
public void UploadFile(object sender, System.EventArgs e)
{
string imgNameOnly, imgNameNoExt, imgExt;
string imgThumbnail;
int errorNumber = 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"]);
string fileExt;
StringBuilder picInfo = new StringBuilder();
if(Page.IsValid)
{
for(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);
if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
{
if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>Fehler:</b>File("+ (i+1) +") " + imgNameOnly + " existiert bereits, bitte ändern Sie den Dateinamen<br/>" );
}
}
anders
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>Fehler:</b> file("+ (i+1) +") " + imgNameOnly + " extension" + fileExt + " nicht erlaubt<br/>" );
}
}
if(erroNumber > 0)
{
picInfo.Append("<font color=red>Alle Vorgänge sind nicht abgeschlossen, bitte korrigieren Sie die Fehler und fahren Sie erneut fort</font><br/>");
}
anders
{
for(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));
switch(imgExt)
{
//case „.jpeg“:
Fall „.jpg“:
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
brechen;
Fall „.gif“:
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
brechen;
Fall „.png“:
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
brechen;
}
//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg
switch(strFePicThumbFormat)
{
// Das JPEG-Format kann die kleinste Dateigröße erreichen, und das PNG-Format ist die größte
//case „jpeg“:
Fall „jpg“:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
brechen;
Fall „gif“:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif";
brechen;
Fall „png“:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
brechen;
Standard:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;
}//switch
picInfo.Append("<b>Dateiname:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br/>");
picInfo.Append("<b>Thumbnail name:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br/><br/>")
; Entsorgen();
newImg.Dispose();
}//for
picInfo.Append("<font color=red>Alle Vorgänge erfolgreich</font><br/>");
}// wenn erronumber = 0
}
anders
{
picInfo.Append("<font color=red>Es liegt ein Fehler vor, bitte überprüfen. Der Vorgang war nicht erfolgreich</font><br/>"
}
lblPicInfo.Text = picInfo.ToString(
}
</FONT>