简单原始的ASP.NET WEBFORM中多文件上传【参考其他资料修改】

首先是ASPX页面中添加file标签

<input οnclick="addFile()" type="button" value="增加" /><br />
<input id="viewfile" type="file" name="File" runat="server" style="width: 300px" accept="application/pdf,application/msword,application/x-zip-compressed"  />
 描述:<input name="text" type="text" style="width: 150px" maxlength="20" />

还有按钮

<asp:Button CssClass="inputbutton" ID="BtnAdd" runat="server" Text="提交" OnClick="btnSave_Click" />

添加addFile()js事件

    <script type="text/javascript">
    var i = 1
    function addFile() {
        if (i < 8) {
            var str = '<BR> <input type="file" name="File" runat="server" style="width: 300px"  accept="application/pdf,application/msword,application/x-zip-compressed"/>描述:<input name="text" type="text" style="width: 150px" maxlength="20" />'
            document.getElementById('MyFile').insertAdjacentHTML("beforeEnd", str)
        }
        else {
            alert("您一次最多只能上传8个附件!")
        }
        i++
    }
    </script>

后台处理事件

       /// <summary>
        /// 保存事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                lblMessage.Text = "";
                lblMessage.Visible = false;
                System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
                System.Text.StringBuilder strmsg = new System.Text.StringBuilder("");
                string[] rd = Request.Form[5].Split(',');//获得图片描述的文本框字符串数组,为对应的图片的描述
                int ifile;
                for (ifile = 0; ifile < files.Count; ifile++)
                {
                    if (files[ifile].FileName.Length > 0)
                    {
                        System.Web.HttpPostedFile postedfile = files[ifile];
                        if (postedfile.ContentLength / 1024 > 10240)//单个文件不能大于10240k
                        {
                            strmsg.Append(Path.GetFileName(postedfile.FileName) + "---不能大于10240k<br>");
                            break;
                        }
                        string fex = Path.GetExtension(postedfile.FileName).ToLower();
                        if (fex != ".doc" && fex != ".docx" && fex != ".zip" && fex != ".rar")
                        {
                            strmsg.Append(Path.GetFileName(postedfile.FileName) + "---格式不对,只能是doc、docx、zip、rar");
                            break;
                        }
                    }
                }
                if (strmsg.Length <= 0)//说明图片大小和格式都没问题
                {
                    //以下为创建图库目录
                    string dirname = "excellent";
                    string dirpath = Server.MapPath("/appendix");
                    dirpath = dirpath + "\\" + dirname;
                    if (Directory.Exists(dirpath) == false)
                    {
                        Directory.CreateDirectory(dirpath);
                    }
                    Random ro = new Random();
                    int name = 1;
                    int id = 0;
                    Model.ExcellentWorksModel excellentWorksModel = null;
                    for (int i = 0; i < files.Count; i++)
                    {
                        System.Web.HttpPostedFile myFile = files[i];
                        string FileName = "";
                        string FileExtention = "";
                        string PicPath = "";
                        FileName = System.IO.Path.GetFileName(myFile.FileName);
                        string stro = ro.Next(100, 100000000).ToString() + name.ToString();//产生一个随机数用于新命名的图片
                        string NewName = ConvertDateTimeInt(DateTime.Now) + stro;
                        if (FileName.Length > 0)//有文件才执行上传操作再保存到数据库
                        {
                            FileExtention = System.IO.Path.GetExtension(myFile.FileName);

                            string ppath = dirpath + "\\" + NewName + FileExtention;
                            myFile.SaveAs(ppath);
                            string FJname = FileName;
                            PicPath = ppath;
                        }

                        //保存图片详细
                        excellentWorksModel = new ExcellentWorksModel();
                        excellentWorksModel.AddTime = DateTime.Now;
                        excellentWorksModel.Path = PicPath;
                        excellentWorksModel.Title = FileName;
                        excellentWorksModel.Description = rd[i];
                        excellentWorksModel.Status = 1;
                        bool res = BusinessLogic.ExcellentWorksBll.Add(excellentWorksModel);

                        name = name + 1;//用来重命名规则的变量
                    }
                }
                else
                {
                    lblMessage.Text = strmsg.ToString();
                    lblMessage.Visible = true;
                }
                ResponseRedirect("/Reporter/UpLoadExcellentWorks.aspx");
            }
            catch (Exception ex)
            {
                WriteErrMsg("出现异常:"+ex.Message);
            }
        }

        /// <summary>
        /// DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name=”time”></param>
        /// <returns></returns>
        public int ConvertDateTimeInt(System.DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            return (int)(time - startTime).TotalSeconds;
        }

附件信息保存表

/*==============================================================*/
/* Table: ExcellentWorks                                   */
/*==============================================================*/
create table ExcellentWorks (
   ID                   int                  not null,
   Title                nvarchar(200)        null,
   Description          nvarchar(200)        null,
   Path                 nvarchar(200)        null,
   AddTime              datetime             null,
   Status               int                  null,
   constraint PK_EXCELLENTWORKS primary key (ID)
)
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '小记者优秀作品',
   'user', @CurrentUser, 'table', 'ExcellentWorks'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '表ID',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'ID'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '附件文件名',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'Title'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '描述',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'Description'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '路径',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'Path'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '添加时间',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'AddTime'
go

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', 
   '状态',
   'user', @CurrentUser, 'table', 'ExcellentWorks', 'column', 'Status'
go

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值