WEB开发网
开发学院WEB开发ASP.NET ASP.NET之上传文件管理策略 阅读

ASP.NET之上传文件管理策略

 2007-04-17 17:22:09 来源:WEB开发网   
核心提示:最近做的项目跟asp.net上传文件内容有关,故将代码贴出,ASP.NET之上传文件管理策略,以便网友查阅,提供解决此类问题思路:如出现任何不理解问题

最近做的项目跟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" /><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
}

Tags:ASP NET 上传

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接