• FileUpload控件应用


    目的:使用FileUpload控件来达到控制网页文件上传的目的。

    根目录下建有“WebPage”文件:

    前台Html代码如下:

    <form id="form1" runat="server">
        <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="upLoadFile" runat="server" Text="上传" 
                onclick="upLoadFile_Click" />
            <asp:Label ID="ShowMass" runat="server" Text=" "></asp:Label>
        <br />
        </div>
        </form>

    后台代码如下:

     protected void upLoadFile_Click(object sender, EventArgs e)
        {
            string strName = FileUpload1.PostedFile.FileName;//使用fileupload控件获取上传文件的文件名
            if (strName != null)//如果文件名存在
            {
                bool fileOK = false;
                string kzm = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//获取控件中文件的扩展名
                
                string juedui = Server.MapPath("~\\WebPage\\");//设置文件保存的本地路径为绝对路径,保存到当前项目中去
                string newFileName = juedui + FileUpload1.FileName;;
               if (FileUpload1.HasFile)//验证FileUpload控件确实包含文件
                {
                    string[] allowedExtensions = { ".html", "aspx", ".htm", ".xhtml", ".asp", ".php", ".jsp" };
                   for (int i = 0; i < allowedExtensions.Length; i++)
                   {
                       if (kzm == allowedExtensions[i]) //验证扩展名是否符合
                       {
                           fileOK = true;
                       }
                   }
                }
                if (fileOK)  //验证前面的判断是否都已经正确
                {
                    try
                    {
                        FileUpload1.PostedFile.SaveAs(newFileName);//将文件存储到服务器上
                    }
                    catch (Exception)
                    {
                        ShowMass.Text = "文件上传失败";
                    }
                }
     else
                       {
                           ShowMass.Text = "只能上传网页类型文件";
                       }
    }

    else//文件不存在的状况 { //蹦出弹框提示文件不存在,或者可以用jquery作 ShowMass.Text = "请重新选择文件上传!"; } }

    参考链接:http://www.cnblogs.com/fuge/archive/2012/07/25/2608693.html

    新增:

     当上传的文的网页文件为aspx页面时,上传该网页也同样要包含其.cs页面。用上面的方法只能得到所选择的aspx页面,并没有得到其下的.cs页,所以还要进行了些修改。

    思路:用上面的方法已经能够获得到所选择文件的路径,使用FileUpload控件也能够将所选页面按照所想的上传到服务器中,所以想通过上传按钮再绑定一个路径,既绑定aspx的.cs页面,使用FileUpload控件的上传来上传两次,这样就可以达到想要的效果了!

    新代码如下:

    string strName = FileUpload1.PostedFile.FileName;//使用fileupload控件获取上传文件的文件名
            if (strName != "")//如果文件名存在
            {
                bool fileOK = false;
                string kzm = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//获取控件中文件的扩展名
                //string newName = Guid.NewGuid().ToString();  //生成新的文件名,确保唯一性
    
                string juedui = Server.MapPath("~\\WebPage\\");//设置文件保存的本地路径为绝对路径,保存到当前项目中去
                string newFileName = juedui + FileUpload1.FileName;
                string newFileName2 = null;
                if (FileUpload1.HasFile)//验证FileUpload控件确实包含文件
                {
                    string[] allowedExtensions = { ".html", ".aspx", ".htm", ".xhtml", ".asp", ".php", ".jsp" };
                   for (int i = 0; i < allowedExtensions.Length; i++)
                   {
                       if (kzm == allowedExtensions[i]) //验证扩展名是否符合
                       {
                           fileOK = true;
                       }
                       if (kzm == ".aspx")
                       {
                           newFileName2 = newFileName + ".cs";
                       }
                   }
                }
                if (fileOK)  //验证前面的判断是否都已经正确
                {
                    try
                    {
                        FileName.Text = newFileName;
                        ShowMass.Text = "文件上传成功";
                        FileUpload1.PostedFile.SaveAs(newFileName);//将文件存储到服务器上
                        FileUpload1.PostedFile.SaveAs(newFileName2);
                    }
                    catch (Exception)
                    {
                        ShowMass.Text = "文件上传失败";
                    }
                }
                else
                {
                    ShowMass.Text = "只能上传网页类型文件";
                }
            }
            else//文件不存在的状况
            { //蹦出弹框提示文件不存在,或者可以用jquery作
                ShowMass.Text = "请重新选择文件上传!";
            }
  • 相关阅读:
    为什么解析 array_column不可用,
    Android经常使用的布局类整理(一)
    C++ Coding Standard
    Kd-Tree算法原理和开源实现代码
    2013年10月5日国庆上班前一天
    2013年10月5日
    2013年10月3日合肥归来
    国庆第二天参加室友婚礼
    国庆随笔
    2013第40周日国庆放假前一天晚上
  • 原文地址:https://www.cnblogs.com/dreamskies/p/2771289.html
Copyright © 2020-2023  润新知