`
niunan
  • 浏览: 721384 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

自己封装的一个ASP.NET上传文件的方法

    博客分类:
  • .NET
阅读更多
    自我感觉封装得还不错!!!
代码如下:
 #region 上传文件的方法
    /// <summary>
    /// 上传文件方法
    /// </summary>
    /// <param name="myFileUpload">上传控件ID</param>
    /// <param name="allowExtensions">允许上传的扩展文件名类型,如:string[] allowExtensions = { ".doc", ".xls", ".ppt", ".jpg", ".gif" };</param>
    /// <param name="maxLength">允许上传的最大大小,以M为单位</param>
    /// <param name="savePath">保存文件的目录,注意是绝对路径,如:Server.MapPath("~/upload/");</param>
    /// <param name="saveName">保存的文件名,如果是""则以原文件名保存</param>
    private void Upload(FileUpload myFileUpload, string[] allowExtensions, int maxLength, string savePath, string saveName)
    {
        // 文件格式是否允许上传
        bool fileAllow = false;

        //检查是否有文件案
        if (myFileUpload.HasFile)
        {
            // 检查文件大小, ContentLength获取的是字节,转成M的时候要除以2次1024
            if (myFileUpload.PostedFile.ContentLength / 1024 / 1024 >= maxLength)
            {
                throw new Exception("只能上传小于2M的文件!");
            }

            //取得上传文件之扩展文件名,并转换成小写字母
            string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
            string tmp = "";   // 存储允许上传的文件后缀名
            //检查扩展文件名是否符合限定类型
            for (int i = 0; i < allowExtensions.Length; i++)
            {
                tmp += i == allowExtensions.Length - 1 ? allowExtensions[i] : allowExtensions[i] + ",";
                if (fileExtension == allowExtensions[i])
                {
                    fileAllow = true;
                }
            }

            if (fileAllow)
            {
                try
                {
                    string path = savePath + (saveName == "" ? myFileUpload.FileName : saveName);
                    //存储文件到文件夹
                    myFileUpload.SaveAs(path);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            else
            {
                throw new Exception("文件格式不符,可以上传的文件格式为:" + tmp);
            }
        }
        else
        {
            throw new Exception("请选择要上传的文件!");
        }
    }
    #endregion


以下是测试的代码:
        try
        {
            string[] ss = { ".jpg", ".gif" };
            string path = Request.MapPath("~/upload/");
            Upload(FileUpload1, ss, 1, path, "");
            Label1.Text = "文件上传成功!";
        }
        catch (Exception ex)
        {
            Label1.Text = ex.Message;
        }


以前一直没有认真的学习异常处理,今天弄了一下还发现异常处理还蛮好的。。。起码代码量上感觉比if..else..少。。。呵呵。。。
6
0
分享到:
评论
4 楼 zhangyong0823 2009-04-16  
我只会做 上传图片的!
3 楼 Hafeyang 2009-02-10  
niunan 写道

呵呵。。这些代码只是用于目前我做的项目中,有太多的地方要用到上传控件了,都是判断有无文件,大小是否合适。。。。把他封在一起就可以减少我的代码编写量了,嘿嘿。。我还是新手,实在想不出比“封装”更好的词了。。。

没事,我也算是一个新手,大家互相勉励,我没有故意捣乱的意思。
2 楼 niunan 2008-12-24  
呵呵。。这些代码只是用于目前我做的项目中,有太多的地方要用到上传控件了,都是判断有无文件,大小是否合适。。。。把他封在一起就可以减少我的代码编写量了,嘿嘿。。我还是新手,实在想不出比“封装”更好的词了。。。
1 楼 Hafeyang 2008-12-24  
javaeye里面的.net方面文章就是有特点,我不知道Fileupload有没有哉封装的必要,何况我怎么看都不像是在封装。

相关推荐

    asp.net文件上传

    ### ASP.NET 文件上传知识点 #### 一、ASP.NET文件上传概述 在ASP.NET应用程序中,文件上传是一项常用的功能。用户可以将本地计算机上的文件发送到服务器进行存储或处理。这通常通过HTML表单中的`...

    ASP.NET+VB.NET 上传文件

    本文将详细介绍如何利用ASP.NET和VB.NET来创建一个简单的文件上传系统。 首先,我们需要理解ASP.NET中的文件上传组件`&lt;asp:FileUpload&gt;`。这个控件允许用户从他们的计算机选择文件,并将其数据发送到服务器。在HTML...

    ASP.NET MVC 文件管理功能Demo

    ASP.NET MVC 文件管理功能Demo是基于ASP.NET MVC框架和Easy-UI前端库开发的一个实践项目,旨在实现对本地文件系统的全面操作。这个Demo涵盖了多种文件操作功能,包括上传、下载、复制、粘贴、压缩以及重命名等,使得...

    asp.net上传模块

    ASP.NET上传模块是ASP.NET应用程序中的一个重要组成部分,它允许用户通过网页将文件上传到服务器。在Web开发中,文件上传功能常用于用户提交照片、文档或其他类型的数据。在这个场景中,我们关注的是一个专为ASP.NET...

    asp.net 多文件上传

    ASP.NET多文件上传是Web开发中的一个重要功能,它允许用户一次性上传多个文件,极大地提高了用户交互体验。在ASP.NET框架中,实现这个功能通常涉及到HTML控件、服务器端代码以及数据库存储等多个方面。以下是对这一...

    Asp.Net WebApi 上传文件方法(原生js上传和JQ ajax上传)

    在处理文件上传时,我们需要创建一个API控制器,该控制器包含一个接受文件的Action方法。 对于原生JavaScript的文件上传,我们可以使用HTML5的`FormData`对象和`XMLHttpRequest`。以下是一个基本的示例: ```...

    asp.net中文件的上传下载,删除

    总的来说,"asp.net中文件的上传下载,删除"是一个基础但关键的Web开发技能,而"FileUpDownDelete"工具包则为开发者提供了一站式的解决方案,使得处理文件操作变得更为轻松。在你的项目中合理利用这样的工具,可以...

    ASP.net实现多文件上传

    ASP.NET可以通过路由或者控制器方法来处理文件下载请求,确保只有合法的请求才能访问到文件。 综上所述,实现ASP.NET多文件上传涉及前端的文件选择和管理、后端的文件接收和处理、以及安全措施的实施。这一过程不仅...

    asp.net 批量上传文件,进度条显示

    在ASP.NET中实现批量文件上传并同时展示进度条效果,是一项常见的需求,特别是在处理大量数据时,用户界面的反馈能够显著提升用户体验。本实例通过结合ASP.NET、Ajax以及ExtJS库,提供了一种高效且直观的解决方案。 ...

    Asp.net同时上传多个文件

    例如,使用AJAX技术结合jQuery File Upload插件,或者利用Asp.net MVC的Ajax.BeginForm和jQuery的Ajax方法,可以实现在不刷新页面的情况下上传文件。 5. **进度条显示** 大文件上传时,提供进度条显示可以提升用户...

    asp.net大文件上传组件+源程序.rar

    "asp.net大文件上传组件+源程序.rar"这个压缩包文件很可能是为了提供一个解决方案,包含了一个用于ASP.NET 2.0的大文件上传组件以及相关的源代码。 首先,让我们详细了解一下大文件上传的基本概念。在传统的HTTP...

    Asp.NET大文件上传开发总结集合

    在Asp.NET中进行大文件上传是一个常见的需求,但在默认情况下,Asp.NET存在上传文件大小的限制,并且无法提供上传进度。这个问题在.NET 1.1版本尤为明显,因为那时上传的文件会被完全加载到服务器内存中。然而,在...

    ASP.NET中文件上传下载方法集合

    在ASP.NET中,文件上传和下载涉及到多个方面,包括配置文件的调整、文件信息的封装、文件格式的验证、文件内容的处理以及与远程服务器的交互。理解并熟练掌握这些技术对于开发功能完善的Web应用至关重要。在实际项目...

    [上传下载]ASP.NET同时上传多个文件_aspxcnup(ASP.NET源码).rar

    标题中的 "[上传下载]ASP.NET同时上传多个文件_aspxcnup" 暗示了这是一个关于ASP.NET平台下实现多文件上传功能的源代码。在ASP.NET中,开发者经常需要处理用户通过网页上传文件的需求,尤其是当用户需要一次性上传多...

    asp.net上传图片带进度条

    - 在服务器端,创建一个ASP.NET MVC Action或Web API控制器方法来接收上传请求。 - 读取HTTP请求的InputStream,处理文件数据。 - 随着文件读取的进度,可以返回百分比完成的信息,这需要配合前端的AJAX回调来...

    ASP.NET上传控件

    在处理上传的文件时,ASP.NET上传控件会生成一个或多个FileUpload对象,每个对象代表一个上传的文件。开发者可以通过编程方式访问这些对象,获取文件信息,如文件名、大小、类型,并将其保存到服务器的特定位置,...

    asp.net快速上传大文件

    ASP.NET 是一个强大的Web开发框架,由微软公司推出,用于构建动态网站、Web应用程序和Web服务。在ASP.NET MVC(Model-View-Controller)模式下,开发者可以更加灵活地处理项目结构和业务逻辑。当我们面临大文件上传...

    ASP.NET中实现多文件上传实例

    在ASP.NET中,多文件上传是一项常见的功能,用于允许用户一次性选择并上传多个文件到服务器。这个实例将向我们展示如何使用C#编程语言在ASP.NET环境中实现这一功能。以下是一份详细的步骤和知识点解析: 1. **HTML...

    UEditor的asp.net封装控件

    在ASP.NET框架下,为了方便开发者集成和管理,通常会对其进行封装,形成一个可以直接在ASP.NET页面上使用的控件。这个"UEditor的asp.net封装控件"就是这样一个工具,它简化了UEditor在.NET环境下的集成过程,让...

    ASP.NET限制上传文件大小示例

    结合上述方法,你可以创建一个完整的上传文件功能,既能限制文件大小,又能确保上传过程的安全性。在实际项目中,通常会结合多种方法以提高安全性。`upload`这个文件可能是示例代码或者相关资源,包含了一个实现上述...

Global site tag (gtag.js) - Google Analytics