初学者

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<!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>
        <table>
           <tr>
            <td>请点“浏览”选择您要上传的文件<INPUT style="WIDTH: 70%" id="upLoadFile" class="button" type="file" name="upLoadFile"
              runat="server">&nbsp;&nbsp;
             <asp:Button id="btnUpdate" runat="server" CssClass="button" Text="上 传" OnClick="btnUpdate_Click"></asp:Button></td>
           </tr>
        </table>
</div>
    </form>
</body>
</html>

后台:

//上传按钮事件   

protected void btnUpdate_Click(object sender, EventArgs e)
    {
        string strNowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss");
        string strFileNameOld = this.upLoadFile.PostedFile.FileName;
        if (strFileNameOld.LastIndexOf(".") <= -1)
        {
            UploadUtil.popupMessage("请输入正确的文件名称",this);
            return;
        }

        //strFileName为上传之后文件名,即上传文件的当前时间的年月日时分秒+文件后缀名,如想改动可以自己随意组合

        string strFileName = strNowTime + strFileNameOld.Substring(strFileNameOld.LastIndexOf("."));
        string strFilePath = Server.MapPath("~/image/");//想把上传的文件放到哪里,只要在项目根目录建立对应文件夹即可
        string ErrorMessage = "";
        if (UploadUtil.UploadFile(this.upLoadFile, strFilePath + strFileName, out ErrorMessage,this) == true)
        {

            UploadUtil.popupMessage("文件上传成功!",this);
            return;
        }
        else
        {
           UploadUtil.popupMessage(ErrorMessage,this);
            return;
        }
    }

最后,在APP_CODE下新建类UploadUtil.cs,代码如下:

using System;
using System.Web;
using System.Web.UI.HtmlControls;


/// <summary>
/// 上传文件工具类
/// </summary>
public class UploadUtil
{
    public UploadUtil()
    {


    }
    #region public static 上传图片文件
    /// <summary>
    /// 上传图片文件
    /// </summary>
    /// <param name="InputFileCotrol">上传控件</param>
    /// <param name="FilePathName">保存的文件名</param>
    /// <param name="ErrorMessage">传出去的错误信息</param>

   /// <param name="page">一般写THIS</param>
   /// <returns>是否成功</returns>
    public static bool UploadFile(HtmlInputFile InputFileCotrol, string FilePathName, out string ErrorMessage, System.Web.UI.Page page)
    {
        string strFileName = "";
        string strExtendName = "";

        ErrorMessage = "";

        //得到上传的文件
        HttpPostedFile filePosted = InputFileCotrol.PostedFile;
        strFileName = filePosted.FileName;

        //判断文件名是否为空
        if (strFileName == "" || filePosted.ContentLength == 0)
        {
            ErrorMessage = "上传文件不能为空";
            return false;
        }
        if (filePosted.ContentLength > 5242880)
        {
            ErrorMessage = "上传文件不能太大";
            return false;
        }

        //检查后缀名是否正确(如想支持更多文件格式上传,可以在此添加)
        strExtendName = strFileName.Substring(strFileName.LastIndexOf("."));
        //.DOC.XLS.TXT.PDF.JPEG,PPT,htm
        if (strExtendName.ToLower() != ".doc" && strExtendName.ToLower() != ".xls" && strExtendName.ToLower() != ".txt"
            && strExtendName.ToLower() != ".pdf" && strExtendName.ToLower() != ".jpeg" && strExtendName.ToLower() != ".ppt"
            && strExtendName.ToLower() != ".jpg"
            && strExtendName.ToLower() != ".zip"
            && strExtendName.ToLower() != ".htm"
            )
        {
            ErrorMessage = "请上传指定格式的文件";
            popupMessage(ErrorMessage, page);
            return false;
        }

        //上传图片
        try
        {
            filePosted.SaveAs(FilePathName);
        }
        catch (Exception exec)
        {
            ErrorMessage = "上传文件失败" + exec.Message;
            return false;
        }

        return true;
    }

    //该方法为弹出消息框,可用可不用,网上一大把

    public static void popupMessage(string Message, System.Web.UI.Page page)
    {
        Message = Message.Replace("\n", "\\n").Replace("\"", "“").Replace("'", "‘");
        string strScript = "<script language='javascript'>window.alert('" + Message + "');</script>";
        page.RegisterStartupScript("successAlert", strScript);
    }
    #endregion
}

posted on 2010-05-20 17:44  菜皮  阅读(1341)  评论(0编辑  收藏  举报