• .NET FileUpLoad上传文件


      一.上传扫描件到服务器,自定义创建文件夹(如果存在该文件夹,则无需创建),并判断格式以及文件大小进行保存:

    首先创建一个保存按钮事件:

         protected void btnSave_Click(object sender, EventArgs e)
            {
                try
                {#region    增值税专用发票扫描件 验证
                    if (UploadFile1.PostedFile == null || UploadFile1.PostedFile.ContentLength <= 0)
                    {
                        tools.showMsg("请选择“增值税专用发票”扫描件信息!", true, null);
                        this.UploadFile1.Focus();
                        return;
                    }
                    if (UploadFile1.PostedFile.ContentLength > 250 * 1024)
                    {
                        tools.showMsg("“增值税专用发票”扫描件大于250K,不能上传!", true, null);
                        this.UploadFile1.Focus();
                        return;
                    }
    
                    #endregion
    
                    #region 上传扫描件
    
                    string strErrMsg = "";
                    string conType = this.txtCorpName.Value;        //获取将要存储的文件夹名称
                    bool bl = UploadFile(UploadFile1,conType, out strErrMsg);     //tb_corpName.Text.Trim()
                    if (!bl)
                    { 
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('“增值税专用发票”扫描件上传失败')</script>");  
                        this.UploadFile1.Focus();
                        return;
                    }
                    #endregion 
     
                }
                catch(Exception ex)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('"+ex.Message+"')</script>");
                }
            }

    调用 UploadFile 方法:

         private bool UploadFile(HtmlInputFile inputfile,string conType, out string strErrMsg)       //传入三个参数:file控件,文件夹名称,错误信息
            {
               
                strErrMsg = "";
                string strUploadFileName = "";
                try
                {
                    if (inputfile.PostedFile != null)
                    {
                        if (inputfile.PostedFile.ContentLength > 0)     //判断是否选中文件
                        { 
                            string strUploadFolder = Server.MapPath("..\UploadAffix\" + conType.ToString());      //获取将要创建的文件夹名称
    
                            if (!Directory.Exists(strUploadFolder))         //判断是否已创建 (如果未创建,则进行创建)
                            {
                                Directory.CreateDirectory(strUploadFolder);     
                            }
    
                            string strExtName = Path.GetExtension(inputfile.PostedFile.FileName);           //判断上传文件的类型
                            if (strExtName.ToUpper() != ".JPG" && strExtName.ToUpper() != ".JPEG")
                            {
                                strErrMsg = "请选择扫描件文件(*.JPG,*.JPEG)!";
                                return false;
                            }
    
                            strUploadFileName = Server.MapPath(@"..");             
                            string strGUID = Guid.NewGuid().ToString("B");              //生成唯一的标识符
                            strUploadFileName += @"UploadAffix" + @"" + conType + @"" + strGUID;
                            strUploadFileName += strExtName;
                            inputfile.PostedFile.SaveAs(strUploadFileName);
    
                            jpgStrPath = "/UploadAffix/" + conType + "/" + strGUID + strExtName;    //获取保存在文件夹下的路径
                            return true;
                        }
                        else
                        {
                            strErrMsg = "请选择要上传的扫描件文件!";
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    strErrMsg = "上传扫描件文件出现问题:" + ex.Message;
                    return false;
                }
            }

      二.通过FileUploadButton按钮上传文件,实现将文件保存到服务器。

    后台代码:

      protected void FileUploadButton_Click(object sender, EventArgs e)
            {
                bool fileOk = false;
    
                string fileName = this.MyFileUpload.FileName;         //获取上传的文件名
    
                int fileSize = MyFileUpload.PostedFile.ContentLength;                  //获取上传文件大小(25600)
    
                string path = Server.MapPath("~\UploadFiles\");              //指定文件路径,是项目下的一个文件夹;~表示当前网页所在的文件夹
    
                if (MyFileUpload.HasFile)           //判断是否选中文件
                {
                    string fileExtension = System.IO.Path.GetExtension(MyFileUpload.FileName).ToLower();        //得到文件后缀
    
                    string[] allowedExtensions = { ".jpg", ".jpeg" };                   //允许的得到的后缀
    
                    for (int i = 0; i < allowedExtensions.Length; i++)          //看包含的文件是否是被允许的文件的后缀
                    {
                        if (fileExtension == allowedExtensions[i])
                        {
                            fileOk = true;
                        }
                    }
                    if (!fileOk)        //判断格式是否为jpg或jpeg
                    {
                        Response.Write("<script>alert('只能上传jpeg,jpg图象文件!');</script>");
                    }
                    if (fileSize > 256000)              //如果文件大于250K 则提示不能上传
                    {
                        Response.Write("<script>alert('文件最大为250KB!');</script>");
                        return;
                    }
                    if (fileOk)
                    {
                        try
                        {
                            string newName = fileName+DateTime.Now.ToString("yyyyMMddhhmmss");//新文件名
                            MyFileUpload.PostedFile.SaveAs(path + newName);       //文件另存在服务器的指定目录下
                            Response.Write("<script>alert('文件上传成功!');</script>");
                        }
                        catch(Exception ee)
                        { 
                            Response.Write("<script>alert('"+ee.Message+"');</script>");
                        }
                    }
                }
                else {
                    Response.Write("<script>alert('请选择将要上传的文件!');</script>"); 
                }
      
            }

    前台代码:

    <asp:FileUpload ID="MyFileUpload" runat="server" style="303px;"  />
    <asp:Button ID="FileUploadButton" runat="server" Text="上传" OnClick="FileUploadButton_Click" />
  • 相关阅读:
    网页版游戏(俄罗斯方块)
    模拟简单进程调度实验
    从小型网站到超大规模网站的MySQL参考架构
    Google Chart Tools学习笔记 二 Area Chart
    大话设计模式——建造者模式
    内存管理:分页,分段,段页结合
    2012第50周星期一自制力网摘
    第49周星期五糟糕破系统
    2012年第50周四
    2012第50周五
  • 原文地址:https://www.cnblogs.com/swjian/p/6802068.html
Copyright © 2020-2023  润新知