ASP.NET的上传文件管理策略2010-12-31最近做的项目跟ASP.NET上传文件内容有关,故将代码贴出,以便网友查阅,提供解决此类问题思路:如出现任何不理解问题,请留言,及时帮您解决!<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>::::上传管理系统::::</title> </head> <body> <form id="form1" runat="server"> <div style="border-right: #ffff00 thin dashed; border-top: #ffff00 thin dashed; margin-bottom: 4px; margin-left: 55px; border-left: #ffff00 thin dashed; line-height: normal; margin-right: 55px; padding-top: 1px; border-bottom: #ffff00 thin dashed; letter-spacing: normal; position: static; background-color: silver; text-align: center"> <br /> <asp:Label ID="LabelTitle" runat="server" Font-Bold="True" Font-Size="XX-Large" ForeColor="Black" Text="上传管理"></asp:Label><br /> <br /> <asp:FileUpload ID="FileUpload1" runat="server" Width="369px"/> <asp:Button ID="ButtonUp" runat="server" Height="21px" Text="上 传" Width="67px" OnClick="ButtonUp_Click" /><br /> <br /> <asp:Label ID="LabelTitle2" runat="server" ForeColor="Red" Text="*上传文件不能超过2M"></asp:Label><br /> <b>原文件名:</b><span id ="FileName" runat="server" /><br /> <b>上传到服务器:</b><span id="SaveDir" runat="server" /><br /> <b>缩略图地址:</b><span id ="sSaveDir" runat ="server" /><br /> <b>文件类型:</b><span id ="FileType" runat ="server" /><br /> <b>文件大小:</b><span id="FileLength" runat ="server" /><br /> <b>文件拓展名:</b><span id="FileExtention" runat="server" /><br /> <b>上传日期:<br /><span id ="UpDateTime" runat ="server" /><br /> 图片预览:<br /> <asp:Image ID="Image1" runat="server" ImageUrl="~/Login.aspx" BorderColor="#0000C0"/><br /> </b> <br /> <br /> </div> </form> </body> </html> ******************************************************************************* using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using MWO.Model.Info; using MWO.DAL.Info; public partial class Login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ButtonUp_Click(object sender, EventArgs e) { if (FileUpload1.PostedFile.FileName != null) { try { FileName.InnerHtml = FileUpload1.PostedFile.FileName;//GetPhotoName UpDateTime.InnerHtml = DateTime.Now.ToShortDateString();//UpDateTime #region SetPhotoSize FileLength.InnerHtml = CountSize(FileUpload1.PostedFile.ContentLength); if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 2) { Response.Write("<script>alert("图片不能超过规定大小!");</script>"); } else { #region SetPhotoFormat FileType.InnerHtml = FileUpload1.PostedFile.ContentType; FileExtention.InnerHtml = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName).ToUpper(); string m_FileName = "www.MWO.Com-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff").Replace(".", "-") + FileExtention.InnerHtml; string m_sFileName = "www.MWO.Com-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff").Replace(".", "-") + FileExtention.InnerHtml; if (FileExtention.InnerHtml == ".JPG") { string m_SavePath = Server.MapPath("./photo/") + m_FileName; SaveDir.InnerHtml = m_SavePath; #region SetSmallPhoto this.MakeSmallImg(FileUpload1.PostedFile, this.Server.MapPath("./SPhoto/") + m_sFileName, 118, 90); string m_sSavePath = this.Server.MapPath("./SPhoto/") + m_sFileName; sSaveDir.InnerHtml = m_sSavePath; #endregion FileUpload1.PostedFile.SaveAs(m_SavePath); Response.Write("<script>alert("图片文件保存成功!");</script>"); #region SaveDataBasee PhotoInfo m_PInfo = new PhotoInfo(); m_PInfo.Organization = "5173"; m_PInfo.PicName = FileName.InnerHtml; m_PInfo.ServerName = "GLSDB"; m_PInfo.Cdate = DateTime.Now; m_PInfo.Exp = FileExtention.InnerHtml; m_PInfo.Flag = 0; m_PInfo.GameNickName = "Bruce";//TextBox控件内容 m_PInfo.MoonStar = 0; m_PInfo.ShowIndex = 0; m_PInfo.SPicHttpAddr = m_sSavePath; m_PInfo.Type = 0; m_PInfo.Vote = 0; m_PInfo.PicHttpAddr=m_SavePath; PhotoDAO m_PDao = new PhotoDAO(); m_PDao.Insert(m_PInfo); #endregion } else { Response.Write("<script>alert("图片格式不正确,请选择图片文件!");</script>"); } #endregion } #endregion } catch (Exception m_Ex) { Response .Write ("<script>alert(""+m_Ex.ToString ()+"");</script>"); } } else if (FileUpload1.PostedFile.FileName == "") { Response.Write("<script>alert("上传文件不能为空!");</script>"); } } #region /// <summary> /// 计算文件大小函数,Size为字节大小 /// </summary> /// <param name="Size">初始文件大小</param> /// <returns></returns> public string CountSize(long Size) { string m_strSize = ""; long FactSize = 0; FactSize = Size; if (FactSize <= 1024) m_strSize = FactSize.ToString() + "Byte"; if(FactSize>=1024&&FactSize<=1048576) m_strSize=(FactSize/1024).ToString ()+"K"; if (FactSize >= 1048576 && FactSize <= 10485760) m_strSize = (FactSize / 1024 / 1024).ToString() + "M"; return m_strSize; } #endregion #region SaveSmallPhoto /// <summary> /// 高清晰缩略图算法 /// </summary> /// <param name="postFile">图片文件对象</param> /// <param name="saveImg">要保存为缩略图的源文件</param> /// <param name="Width">宽度</param> /// <param name="Height">高度</param> public void MakeSmallImg(System.Web.HttpPostedFile postFile, string saveImg, System.Double Width, System.Double Height) { //SourcePhotoName string m_OriginalFilename = postFile.FileName; string m_strGoodFile = saveImg; //GetPhotoObject From SourceFile System.Drawing.Image m_Image = System.Drawing.Image.FromStream(postFile.InputStream, true); System.Double NewWidth, NewHeight; if (m_Image.Width > m_Image.Height) { NewWidth = Width; NewHeight = m_Image.Height * (NewWidth / m_Image.Width); } else { NewHeight = Height; NewWidth = (NewHeight / m_Image.Height) * m_Image.Width; } if (NewWidth > Width) { NewWidth = Width; } if (NewHeight > Height) { NewHeight = Height; } //GetPhotoSize System.Drawing.Size size =new System.Drawing.Size((int)NewWidth, (int)NewHeight); //The New of Bimp Photo System.Drawing.Image bitmap = new System.Drawing.Bitmap(size.Width, size.Height); // The New of Palette System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); // Set HightQuality Arithmetic For Graphics g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //ClearCanvas g.Clear(System.Drawing.Color.White); //在指定位置画图 g.DrawImage(m_Image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, m_Image.Width, m_Image.Height), System.Drawing.GraphicsUnit.Pixel); //SavePhoto Of HightFocus bitmap.Save(m_strGoodFile, System.Drawing.Imaging.ImageFormat.Jpeg); //DisposeRes g.Dispose(); m_Image.Dispose(); bitmap.Dispose(); } #endregion }
收藏该网址