ASP.NET创建缩略图
来源:互联网 发布:安徽邮政网络培训学院 编辑:程序博客网 时间:2024/05/05 04:05
在学习过程中发现如果要上传的照片很大的话,速度会很慢,所以采用了在上传照片时同时上传缩略图的方式,这样就可以既不影响多个图片的浏览,又不影响查看具体的图片。
需要用到的命名空间:
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
#region 保存上传文件,方法名:UploadSave(string asFilePath, FileUpload asFileUpload)
/// <summary>
/// 保存上传文件
/// </summary>
/// <param name="asFilePath">保存到的服务器路径</param>
/// <param name="asFileUpload">上传控件</param>
/// <returns></returns>
public int UploadSave(string asFilePath, FileUpload asFileUpload)
{
int Fhz,Fhz1,Fhz2;
string FilePath = asFileUpload.PostedFile.FileName.ToString();
FileInfo myFileInfo = new FileInfo(FilePath);
string PictureName = myFileInfo.Name.ToString();
string FileExtends = null;
if (PictureName != null)
{
FileExtends = GetFileExtends(PictureName);
string BigPictureName = System.DateTime.Now.DayOfYear.ToString() + asFileUpload.PostedFile.ContentLength.ToString() + "." + FileExtends.ToString();
string SmallPictureName = "S_" + BigPictureName.ToString();
string BigPicturePath = asFilePath + BigPictureName.ToString();
string SmallPicturePath = asFilePath + SmallPictureName.ToString();
Fhz1 = PictureUpload(BigPicturePath, asFileUpload, FileExtends);
Fhz2 = Miniature(FilePath, SmallPicturePath, 130, 130);
Fhz = Fhz1 + Fhz2;
}
else
{
Fhz = 0;
}
return Fhz;
}
#endregion
#region 上传原图,方法名:PictureUpload(string asPicturePath, FileUpload asFileUpload, string asFileExtends)
/// <summary>
/// 上传原图
/// </summary>
/// <param name="asPicturePath">保存到的服务器路径</param>
/// <param name="asFileUpload">上传控件</param>
/// <param name="asFileExtends">文件扩展名</param>
/// <returns></returns>
protected int PictureUpload(string asPicturePath, FileUpload asFileUpload, string asFileExtends)
{
int fhz = 0;
if (CheckFileExtends(asFileExtends))
{
try
{
asFileUpload.SaveAs(asPicturePath);
fhz = 1;
}
catch
{
fhz = 0;
}
}
else
{
return fhz = 0;
}
return fhz;
}
#endregion
#region 创建并上传缩略图,方法名:Miniature(string asBigPicturePath, string sPicturePath, int asPictureWidth, int asPictureHeight)
/// <summary>
/// 创建并上传缩略图
/// </summary>
/// <param name="asBigPicturePath">图片在本机的绝对路径</param>
/// <param name="sPicturePath">保存到的服务器路径</param>
/// <param name="asPictureWidth">缩略图宽度</param>
/// <param name="asPictureHeight">缩略图高度</param>
/// <returns></returns>
protected int Miniature(string asBigPicturePath, string sPicturePath, int asPictureWidth, int asPictureHeight)
{
System.Drawing.Image fImage = System.Drawing.Image.FromFile(asBigPicturePath);
int picturewidth = asPictureWidth;
int pictureheight = asPictureHeight;
System.Drawing.Image sImage = new System.Drawing.Bitmap(picturewidth, pictureheight);
System.Drawing.Graphics myGraphics = System.Drawing.Graphics.FromImage(sImage);
myGraphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
myGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
myGraphics.Clear(System.Drawing.Color.Transparent);
myGraphics.DrawImage(fImage, new System.Drawing.Rectangle(0, 0, picturewidth, pictureheight), new System.Drawing.Rectangle(0, 0, fImage.Width, fImage.Height), System.Drawing.GraphicsUnit.Pixel);
try
{
sImage.Save(sPicturePath, System.Drawing.Imaging.ImageFormat.Jpeg);
return 1;
}
catch
{
return 0;
}
finally
{
fImage.Dispose();
sImage.Dispose();
}
}
#endregion
其中还要用到的方法:
#region 上传文件的类型枚举,方法名:FileType
public enum FileType
{
jpg, gif, bmp, png, swf
}
#endregion
#region 创建文件保存,方法名:CreateFolder(string FolderPathName)
public static void CreateFolder(string FolderPathName)
{
if (FolderPathName.Trim().Length > 0)
{
try
{
string CreatePath = System.Web.HttpContext.Current.Server.MapPath(FolderPathName).ToString();
if (Directory.Exists(CreatePath) == false)
{
Directory.CreateDirectory(CreatePath);
}
}
catch (Exception ex)
{
throw ex;
}
}
}
#endregion
#region 取得文件扩展名,方法名:GetFileExtends(string FileName)
protected static string GetFileExtends(string FileName)
{
string Extends = null;
if (FileName.IndexOf('.') > 0)
{
string[] FileNames = FileName.Split('.');
Extends = FileNames[FileNames.Length - 1].ToString();
}
return Extends;
}
#endregion
#region 检查上传文件的合法性,方法名:CheckFileExtends()
protected static bool CheckFileExtends(string FileExtends)
{
bool status = false;
FileExtends = FileExtends.ToLower();
string[] FileExtendses = Enum.GetNames(typeof(FileType));
for (int i = 0; i < FileExtendses.Length; i++)
{
if (FileExtendses[i].ToLower() == FileExtends)
{
status = true;
break;
}
}
return status;
}
#endregion
--其中部分摘自互联网
- ASP.NET创建缩略图
- asp.net生成缩略图
- asp.net 显示缩略图
- asp.net生成缩略图
- asp.net生成缩略图
- Asp.NET生成缩略图
- asp.net 生成缩略图
- ASP.NET生成缩略图
- asp.net生成缩略图
- asp.net实现缩略图
- ASP.Net生成缩略图
- asp.net生成缩略图
- asp.net生成缩略图
- ASP.NET生成缩略图
- ASP.NET [C#] 生成缩略图
- asp.net 2.0 生成缩略图
- asp.net中生成缩略图
- 用ASP.Net生成缩略图
- 如何修改Applet中的class
- english note
- spring中处理中文乱码问题的过滤器配置
- 破解SQL Prompt 3.9的几步操作
- main主函数执行完毕后,是否可能会再执行一段代码?
- ASP.NET创建缩略图
- 家用NAS使用小记
- 关于在COM组件中 ATL/WTL使用webbroswer控件无法响应Ctrl+A Ctrl+V Ctrl+C及回车键的处理
- yacc与lex入门
- 转:深入理解.bin文件和.nb0文件的结构
- 2010年03月12日开始FOXMAIL 5.0不能接收GMAIL邮件的原因
- 根据文件名获取文件id
- 技术管理三字经:管、理、决!
- c++各个公司面试题目