Kode sumber C# untuk mengunggah gambar dan membuat thumbnail di ASP.NET<FONT size=4><FONT size=4><FONT size=4>menggunakan System;
menggunakan Sistem.Koleksi;
menggunakan Sistem.ComponentModel;
menggunakan Sistem.Data;
menggunakan Sistem.Gambar;
menggunakan Sistem.Web;
menggunakan Sistem.Web.SessionState;
menggunakan Sistem.Web.UI;
menggunakan Sistem.Web.UI.WebControls;
menggunakan Sistem.Web.UI.HtmlControls;
menggunakan Sistem.IO;
menggunakan System.Drawing.Imaging;
namespace eMeng.Exam
{
/// <ringkasan>
/// Deskripsi ringkasan gambar mini.
/// </ringkasan>
Thumbnail kelas publik : System.Web.UI.Page
{
dilindungi Sistem.Web.UI.WebControls.Label Label1;
dilindungi System.Web.UI.WebControls.Button Button1;
private void Page_Load (pengirim objek, System.EventArgs e)
{
//Masukkan kode pengguna di sini untuk menginisialisasi halaman
Label1.Text = "<h3>Mudah dipraktikkan di ASP.NET?lt;/h3>";
Button1.Text = "Unggah dan tampilkan thumbnail";
}
#kode wilayah yang dihasilkan oleh Perancang Formulir Web
ganti void OnInit yang dilindungi (EventArgs e)
{
//
// CODEGEN: Panggilan ini diperlukan oleh perancang Formulir Web ASP.NET.
//
Inisialisasi Komponen();
base.OnInit(e);
}
/// <ringkasan>
/// Desainer mendukung metode yang diperlukan - jangan gunakan editor kode untuk memodifikasi
/// Isi dari metode ini.
/// </ringkasan>
kekosongan pribadi InitializeComponent()
{
this.Button1.Click += Sistem baru.EventHandler(this.Button1_Click);
ini.Muat += Sistem baru.EventHandler(ini.Page_Load)
;
#endregion
private void Button1_Click(pengirim objek, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Saat ini.Permintaan.File;
HttpPostedFile MyPostedFile = MyFileColl[0];
jika (MyPostedFile.ContentType.ToString().ToLower().IndexOf("gambar") < 0)
{
Response.Write("Format grafik tidak valid.");
kembali;
}
DapatkanThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
}
Sistem.Gambar.Imaging.ImageFormat GetImageType pribadi (objek strContentType)
{
if ((strContentType.ToString().ToLower()) == "gambar/pjpeg")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "gambar/gif")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "gambar/bmp")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "gambar/tiff")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "gambar/ikon x")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "gambar/x-png")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "gambar/x-emf")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "gambar/x-exif")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Exif;
}
else if ((strContentType.ToString().ToLower()) == "gambar/x-wmf")
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.Wmf;
}
kalau tidak
{
kembalikan Sistem.Gambar.Pencitraan.ImageFormat.MemoryBmp;
}
}
private void GetThumbNail(string strFileName, int iWidth, int iheight,
string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
{
Sistem.Gambar.Gambar oImg;
jika (blnGetFromFile)
{
oImg = Sistem.Gambar.Gambar.DariFile(strFileName);
}
kalau tidak
{
oImg = Sistem.Gambar.Gambar.FromStream(ImgStream);
}
oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
string strGuid = Sistem.Guid.NewGuid().ToString().ToUpper();
string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Respon.ContentType = strContentType;
MemoryStream MemStream = MemoryStream baru();
oImg.Simpan(MemStream, GetImageType(strContentType));
MemStream.WriteTo(Respon.OutputStream);
}
}
}
</FONT></FONT></FONT><FONT color=#ff0000 size=4></FONT><FONT size=4>Fungsi:
1. Unggah file gambar (JPG GIF PNG),
2. Simpan ke jalur yang ditentukan (atur jalur di web.config dan simpan file dalam format aslinya),
3. Dan secara otomatis menghasilkan lebar yang ditentukan (atur lebar di web.config)
4. dan format yang ditentukan (tentukan format thumbnail di web.config)
5. Thumbnail dengan proporsi yang sama dengan gambar aslinya (tinggi thumbnail dihitung berdasarkan lebar dan lebar serta tinggi gambar asli)
6. Dapat menentukan apakah file tersebut sudah ada
7. Jika tidak diganti, kesalahan diberikan
8. Jika kotak centang "Timpa gambar asli" dipilih, gambar asli akan ditimpa.
9. Sesuai dengan persyaratan, lebih dari satu input file dan kotak centang yang sesuai dapat diatur di formulir web.
10. Dan setelah file diupload, nama file, ukuran, byte, dan
11. Ukuran nama file thumbnail.
12. Format nama file thumbnail: gambar asli + "_thumb." + format tertentu, seperti: test.jpg_thumb.gif, untuk memudahkan pengelolaan.
-------------------
public void UploadFile(pengirim objek, System.EventArgs e)
{
string imgNameOnly, imgNameNoExt, imgExt;
string img Gambar Kecil;
int angka kesalahan = 0;
Sistem.Gambar.Gambar asli, Img baru;
string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
string fileExt;
StringBuilder picInfo = StringBuilder baru()
;
{
for(int i = 0;i < Permintaan.File.Jumlah; i++)
{
HttpPostedFile PostedFile = Permintaan.File[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))
{
nomor kesalahan = nomor kesalahan + 1;
picInfo.Append("<b>Error:</b>File("+ (i+1) +") " + imgNameOnly + " sudah ada, silakan ganti nama file<br/>" );
}
}
kalau tidak
{
nomor kesalahan = nomor kesalahan + 1;
picInfo.Append("<b>Kesalahan:</b> file("+ (i+1) +") " + imgNameOnly + " ekstensi" + fileExt + " tidak diperbolehkan<br/>" );
}
}
if(nomor kesalahan > 0)
{
picInfo.Append("<font color=red>Semua operasi belum selesai, harap perbaiki kesalahan dan lanjutkan lagi</font><br/>");
}
kalau tidak
{
for(int i = 0;i < Permintaan.File.Jumlah; i++)
{
HttpPostedFile PostedFile = Permintaan.File[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 = Sistem.Gambar.Gambar.FromStream(PostedFile.InputStream);
newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
beralih (imgExt)
{
//kasus ".jpeg":
kasus ".jpg":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
merusak;
kasus ".gif":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
merusak;
kasus ".png":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
merusak;
}
//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg
switch(strFePicThumbFormat)
{
//format jpeg bisa mendapatkan ukuran file terkecil, dan png adalah ukuran terbesar
//huruf "jpeg":
kasus "jpg":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
merusak;
kasus "gif":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif";
merusak;
kasus "png":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
merusak;
bawaan:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;
}//switch
picInfo.Append("<b>Nama file:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br/>");
picInfo.Append("<b>Nama thumbnail:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br/><br/>");
oriImg . Membuang();
newImg.Buang();
}//untuk
picInfo.Append("<font color=red>Semua operasi berhasil</font><br/>");
// if erronumber = 0
}
kalau tidak
{
picInfo.Append("<font color=red>Ada kesalahan, silakan periksa. Operasi tidak berhasil</font><br/>");
}
lblPicInfo.Text = picInfo.ToString()
;
</FONT>