1、Upfile.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upfile.aspx.cs" Inherits="Inc_Upfile" %>

<!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>
    <link href="../Manage/Style.Css" type="text/css" rel=Stylesheet />
</head>
<body>
    <form id="form1" runat="server">
    <div style="left: 0px; clip: rect(0px auto auto 0px); position: absolute; top: 0px">
        <asp:FileUpload ID="FileUpload1" runat="server"  />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传文件" CssClass="btn2" />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>
</html>

2、Upfile.aspx.cs

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;

public partial class Inc_Upfile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Cut By 梦溪苑。
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        AllSheng.upload UpFiles = new AllSheng.upload();

     
        //HttpPostedFile File = FileUpload1.PostedFile;
      // AllSheng.UploadObj.PhotoSave("/", FileUpload1);
        HttpFileCollection files = HttpContext.Current.Request.Files;
            UpFiles.Path = "../UpLoadfiles";
            String ReStr= UpFiles.SaveAs(files).ToString();
            Label1.Text = ReStr;
            UpFiles = null;
    }
}

3、类文件:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Cls_Upfile 的摘要说明
/// </summary>
///
namespace AllSheng
{
    public class upload
    {
        #region 变量

        System.Web.HttpPostedFile postedFile;

        protected string localFileName;//原文件名(含扩展名)
        protected string localFileExtension;//原扩展名
        protected long localFileLength;//原文件大小
        protected string localFilePath;//原文件路径

        protected string saveFileName;//保存的文件名(含扩展名)
        protected string saveFileExtension;//保存的扩展名
        //protected long saveFileLength;//保存的文件大小
        protected string saveFilePath;//保存文件的服务器端的完整路径
        protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径


        private string path = null;
        private string fileType = null;
        private int sizes = 0;

        #endregion

        #region upload():初始化变量
        /// <summary>
        /// 初始化变量
        /// </summary>
        public upload()
        {
            path = @"uploadimages"; //上传路径
            fileType = "jpg|gif|bmp|jpeg|png|rar|doc";
            sizes = 200; //传文件的大小,默认200KB
        }
        #endregion

        #region 设置传入的值:Path/Sizes/FileType
        /// <summary>
        /// 设置上传路径,如:uploadimages
        /// </summary>
        public string Path
        {
            set
            {
                path = @"" + value + @"";
            }
        }

        /// <summary>
        /// 设置上传文件大小,单位为KB
        /// </summary>
        public int Sizes
        {
            set
            {
                sizes = value;
            }
        }

        /// <summary>
        /// 设置上传文件的类型,如:jpg|gif|bmp
        /// </summary>
        public string FileType
        {
            set
            {
                fileType = value;
            }
        }
        #endregion
       
        #region SaveAs()上传文件

      public string  SaveAs(System.Web.HttpFileCollection files)
        {
            string myReturn = "";
            try
            {
                for (int iFile = 0; iFile < files.Count; iFile++)
                {
                    postedFile = files[iFile];
                    //获得文件的上传的路径
                    localFilePath = postedFile.FileName;
                    //判断上传文件路径是否为空
                    if (localFilePath == null || localFilePath == "")
                    {
                        //message("您没有上传数据呀,是不是搞错了呀!");
                        //break;

                        continue;
                    }
                    else
                    {
                        #region 判断文件大小
                        //获得上传文件的大小
                        localFileLength = postedFile.ContentLength;
                        //判断上传文件大小
                        if (localFileLength >= sizes * 1024)
                        {
                            message("上传的图片不能大于" + sizes + "KB");
                            break;
                        }
                        #endregion

                        #region 文件夹
                        //获取保存文件夹路径
                        saveFileFolderPath = getSaveFileFolderPath(path);
                        #endregion

                        #region 文件名
                        //获得原文件名(含扩展名)
                        localFileName = System.IO.Path.GetFileName(postedFile.FileName);
                       
                        saveFileName = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
                        #endregion

                        #region 扩展名
                        //获取原文件扩展名
                        localFileExtension = getFileExtension(localFileName);

                        //如果为真允许上传,为假则不允许上传
                        if (localFileExtension == "")
                        {
                            message("目前本系统支持的格式为:" + fileType);
                        }
                        //得到保存文件的扩展名,可根据需要更改扩展名
                        saveFileExtension = localFileExtension;
                        #endregion

                        //得到保存文件的完整路径
                        saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;
                        postedFile.SaveAs(saveFilePath);
                        myReturn = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[] { '\' }) + saveFileName + saveFileExtension;
                      //以下对文章的内容进行一些加工

                        System.Web.HttpContext.Current.Response.Write("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");
                       
                    }
                }
            }
            catch
            {
                //异常
                message("出现未知错误!");
                myReturn = null;
            }
            return myReturn;
        }
        #endregion

        #region getSaveFileFolderPath(...):获得保存的文件夹的物理路径
        /// <summary>
        /// 获得保存的文件夹的物理路径
        /// 返回保存的文件夹的物理路径,若为null则表示出错
        /// </summary>
        /// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
        /// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>
        private string getSaveFileFolderPath(string format)
        {
            string mySaveFolder = null;
            try
            {
                string folderPath = null;
                //以当前时间创建文件夹,
                //!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
                if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 || format.IndexOf("mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)
                {
                    //以通用标准时间创建文件夹的名字
                    folderPath = DateTime.UtcNow.ToString(format);
                    mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";
                }
                else
                {
                    mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + format;
                }
                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(mySaveFolder);
                //判断文件夹否存在,不存在则创建
                if (!dir.Exists)
                {
                    dir.Create();
                }
            }
            catch
            {
                message("获取保存路径出错");
            }
            return mySaveFolder;
        }

        #endregion

        #region getFileExtension(...):获取原文件的扩展名
        /// <summary>
        /// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
        /// </summary>
        /// <param name="myFileName">原文件名</param>
        /// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>
        private string getFileExtension(string myFileName)
        {
            string myFileExtension = null;
            //获得文件扩展名
            myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
            //分解允许上传文件的格式
            if (myFileExtension != "")
            {myFileExtension = myFileExtension.ToLower();//转化为小写
            }
            string[] temp = fileType.Split('|');
            //设置上传的文件是否是允许的格式
            bool flag = false;
            //判断上传的文件是否是允许的格式
            foreach (string data in temp)
            {
                if (("." + data) == myFileExtension)
                {
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
                myFileExtension = "";//不能设置成null,因为null表明文件无后缀名;
            }
            return myFileExtension;
        }
        #endregion

        #region message(...):弹出消息框
        /// <summary>
        /// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
        /// </summary>
        /// <param name="msg">显示内容</param>
        /// <param name="url">跳转路径</param>
        private void message(string msg, string url)
        {
            System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");
        }

        /// <summary>
        /// 弹出消息框,显示内容(msg),无跳转
        /// </summary>
        /// <param name="msg">显示内容</param>
        private void message(string msg)
        {
            System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");
        }
        #endregion
    }
}

C# 通用上传文件类的更多相关文章

  1. PHP - FTP上传文件类

    /** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...

  2. PHP上传文件类 代码练习

    类文件: <?php class upload{ protected $fileName; protected $uploadPath; protected $maxSize; protecte ...

  3. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  4. thinkPHP 上传文件的中文乱码

    最新版本~用了里面的上传文件类,发现在保存文件原本名称的时候当有中文名的时候保存文件会显示乱码,看了下源代码发现在Tp上传驱动那里有点问题. // if (!move_uploaded_file($f ...

  5. SpringSpringBoot上传文件到七牛云

    准备工作 maven pom.xml添加七牛云的sdk依赖 <dependency> <groupId>com.qiniu</groupId> <artifa ...

  6. JMeter上传文件,并修改源码参数化Content-Disposition 的 filename

    一.JMeter上传文件 1.使用F12或抓包工具抓包对应接口 如下图为一个上传图片接口,抓包显示内容如下: 2.将抓包到的信息头内容填写到jmeter的HTTP信息头管理器 3.填写参数 由抓包的接 ...

  7. PHP封装一个通用好用的文件上传处理类

    封装一个文件上传类完成基本功能如下: 1.可上传多个或单个文件 2.上传成功返回一个或多个文件名 3.上传失败则返回每个失败文件的错误信息 上传类中的基本功能: 1.构造参数,用户可以自定义配置参数, ...

  8. 使用javax.servlet.http.Part类上传文件

    使用的是Servlet 3.0 新的特征标注(Annotaion)类描述部署,一些低版本的服务器需要使用标准依赖部署描述文件(web.xml)来部署,另外Part也是Java EE 6.0新增的类,P ...

  9. java http工具类和HttpUrlConnection上传文件分析

    利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...

随机推荐

  1. 使用mysql服务来记录用户的反馈

    经过前几篇教程的学习,相信你对于微信的操作与SAE和webpy都有了些了解,那么这次我想加一个功能,通过mysql来记录用户的反馈,如用户输入fk+内容,然后通过一个页面来显示,最终的效果如下 htt ...

  2. 滑动菜单栏(一)开源项目SlidingMenu的使用

    本帖最后由 user1 于 2013-7-16 21:56 编辑 一.SlidingMenu简介相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右 ...

  3. 一次手工注入waf [转载]

    转载自sss安全论坛 目标站点:http://www.xxx.cn:88注入点:http://www.xxx.cn:88/new/details1.asp?n_id=49909对其进行检测:http: ...

  4. 最近win7更新后出现第二次打开IDE(delphi2007)的时候提示无法打开"EditorLineEnds.ttr"这个文件

    kb2982791 - 2014年8月12日更新 - http://support.microsoft.com/kb/2982791kb2970228 - 2014年8月12日更新 - http:// ...

  5. JS 自定义正则表达式

    1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的 ...

  6. HTML前端--各种小案例

    掬一捧清水,放逐在江河,融入流逝的岁月,将心洗净; 捻一缕心香,遥寄在云端,在最深的红尘里重逢,将心揉碎; 望一程山水,徘徊在月下,在相思渡口苦守寒冬,将心落寞. 案例一: 隐藏扩展域,并去掉afte ...

  7. 以Python角度学习Javascript(二)之DOM

    HTML DOM 定义了访问和操作 HTML 文档的标准方法. DOM 将 HTML 文档表达为树结构. 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文 ...

  8. 《ASP.NET MVC4 WEB编程》学习笔记------HtmlHelper

    本文转载自powerzhang,如果给您带来不便请联系博主. 在实际的程序中,除了在View中展示数据外,还需要在View与后台的数据进行交互,在View中我就需要用的表单相关的元素: 在MVC3框架 ...

  9. sharepoint获取域名和当前登录的应为名字

    string a =  SPContext.Current.Web.CurrentUser.ToString(); int length = a.IndexOf("w|", 0) ...

  10. 【leetcode】Best Time to Buy and Sell Stock II

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...