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"/>
    &nbsp;<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 />
    &nbsp;</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
}

时间: 2025-01-30 09:34:57

ASP.NET的上传文件管理策略的相关文章

ASP实例:一个简单的ASP无组件上传类

简单的ASP无组件上传类,发出来让大家看看.可以做做实验! 以下为引用的内容: <%@ language="javascript"%><%var self = Request.serverVariables("SCRIPT_NAME");if (Request.serverVariables("REQUEST_METHOD")=="POST"){        var oo = new uploadFile(

ASP:利用ASP把图片上传到数据库

ASP(Active Server Pages)是Microsoft很早就推出的一种WEB应用程序解决方案,也是绝大多数从事网站开发人员很熟悉的一个比较简单的编程环境.通过ASP我们可以创建功能强大的动态的WEB应用程序.ASP虽然功能很强大,但有些功能用纯ASP代码完成不了,为了能保证开发出功能更加强大的WEB应用程序,我们可以借助调用COM组件. 在日常工作中,例如开发一个"商品网上销售系统"吧,为了使顾客对商品的外观有所了解,也就是顾客在看商品的文字介绍的同时在文字的旁边有该商品

Asp无组件上传带进度条(续)

上传|无组件 几个月前,写过一篇关于Asp无组件上传带进度条的Blog,当时主要分析了一下通过Web文件上传并在后台获取分析数据的实现原理.其中实现进度条的根本就是要实现分块获取数据,根据分块大小和块数记录已上传大小.还有一些具体的细节问题当时并没有说清楚: Q: 进度信息如何访问?A: 进度信息保存在Application中,每次上传时生成一个进度ID,根据这个进度ID可以检索Application中的当前上传进度信息. Q: 进度信息以什么形式保存在Application中?A: Asp太弱

ASP无组件上传错误 ASP 0104的解决方法

错误|解决|上传|无组件 问题描述:ASP无组件上传程序无法上传较大的文件"Request 对象 错误 'ASP 0104 : 80004005'",(大概大于100kb就不行),但是原先在2000 server中可以上传5m左右的文件. 解决方法:在IIS属性中选中"允许直接编辑配置数据库",然后.在服务里关闭iis admin service服务找到windows\system32\inesrv\下的metabase.xml编辑其中的ASPMaxRequestE

ASP跨服务器上传文件完美解决

服务器|解决|上传 如果你有两个空间,一个大而慢,另外一个小而快,或者其中一个不支持FSO,那么跨服务器上传文件这个问题就摆在你面前了,下面就是我在解决ylog.net里面的跨服务器上传文件的日记,这个问题看似简单,里面的细节问题却是非常有趣 前提条件,空间都必须支持ASP,上传文件的服务器支持FSO,下面的叙述中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显示用户界面的服务器... 实现功能,文件上传,上传后在网页的文本区域自动加上对于图片的UBB码,为了清楚

实例分析:利用ASP把图片上传到数据库

上传|数据|数据库 ASP(Active Server Pages)是Microsoft很早就推出的一种WEB应用程序解决方案,也是绝大多数从事网站开发人员很熟悉的一个比较简单的编程环境.通过ASP我们可以创建功能强大的动态的WEB应用程序.ASP虽然功能很强大,但有些功能用纯ASP代码完成不了,为了能保证开发出功能更加强大的WEB应用程序,我们可以借助调用COM组件. 在日常工作中,例如开发一个"商品网上销售系统"吧,为了使顾客对商品的外观有所了解,也就是顾客在看商品的文字介绍的同时

化境ASP无组件上传类 - upload

上传|无组件 化境ASP无组件上传类 - upload_5xsoft 使用手册 1.0 稻香老农 http://www.5xsoft.com/ [ 下载 ] 目 录 1.关于 upload_5xsoft 2.运行平台与注意事项 2.类的成员与对象 3.使用示例 关于 upload_5xsoft 一直以来,由于FileSystemObject的局限,所以ASP最大的难题就是文件上传,大多解决法就是安装 第三方上传组件.可第三方组件有很多问题,有的组件要注册,有的组件要在表单中加上他的版权信息. 还

如何利用ASP把图片上传到数据库

上传|数据|数据库 ASP(Active Server Pages)是Microsoft很早就推出的一种WEB应用程序解决方案,也是绝大多数从事网站开发人员很熟悉的一个比较简单的编程环境.通过ASP我们可以创建功能强大的动态的WEB应用程序.ASP虽然功能很强大,但有些功能用纯ASP代码完成不了,为了能保证开发出功能更加强大的WEB应用程序,我们可以借助调用COM组件. 在日常工作中,例如开发一个"商品网上销售系统"吧,为了使顾客对商品的外观有所了解,也就是顾客在看商品的文字介绍的同时

Asp.net文件上传操作

asp.net|上传 在ASP里要上传一个文件是很麻烦的事,需要稻香老农之类的组件的支持.在ASP.Net事情就变得简单了许多.如下面上传图片的例子.首先申明使用命名空间.using System.IO;在设计页面拖进一个input(File)控件,并把它作为服务器控件运行.其ID为myFile:然后拖进一个button,给button的单击时间添加如下代码: protected void submit_Click(object sender, EventArgs e)    {