网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
..NET扫描远程计算机注册表.
.解决文件下载弹出窗体被拦截 .
.关于ASP.NET调用JavaScript的实现.
.ASP.NET底层架构探索之IE6的革新.
.ASP.NET中为DataGrid添加单选框.
.灵活正确的实现.NET插件机制.
.ASP.NET2.0数据库之SQL Server安.
.谈谈HtmlControl与WebControl的区.
.Asp.Net的控件如何与Server交互.
.存储过程的分析.
.通过系统配置来提高ASP.NET应用程.
.Asp.net2.0:如何使用ObjectData.
..NET3.5和VS2008中的ASP.NET AJAX.
.ASP.Net C#2.0全能数据库组件 (开.
.ASP.net组件编程中的两种事件编写.
.为XPath自定义函数(因为XPath1..
.追踪ASP.NET代码里的bug.
.ASP.Net中自定义Http处理及应用之.
.动态改变asp.net网页的标题.
.ASP.NET中利用cookies保持客户端.

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

发表日期:2007-4-17


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

上一篇:mscorwks.dll在.Net中的地位以及在.Net代码保护方面的应用 人气:3222
下一篇:ASP.NET设计中的性能优化问题 人气:3520
浏览全部ASP.NET的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐