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

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

<input onclick="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

时间: 2024-10-12 04:56:04

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

用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achieve a user-friendly file-uploading experience over the web. It's built as a Javascript plugin for developers looking to incorporate file-uploading int

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

struts2中的文件上传和下载

天下大事,必做于细.天下难事,必作于易. 曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果 再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础. 十分适合初学者! jsp:页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端--> <for

ASP.NET MVC下使用文件上传

这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新文件夹Uploads,然后新建控制器UploadifyController.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using S

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件",出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值. 比较实际的解决方案就是模拟操作了,下面我就将演示

如何在Web页面中集成文件上传功能

当前,个人主页制作非常流行.当用户开发好自己的页面时,需要将文件传输到服务器上,解决这个问题的方法之一 是运行FTP服务器并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录.由于Windows NT 和 Windows98均不提供直接的基于窗口形式的FTP客户程序,用户必须懂得如何使用基于命令行 的FTP客户,或掌握一种新的基于窗口形式的FTP客户程序.因此,这种解决方案仅对熟悉FTP且富有经验的用户来说是可行 的. 如果我们能把文件

PHP中,文件上传实例

PHP中,文件上传一般是通过move_uploaded_file()来实现的.  bool move_uploaded_file ( string filename, string destination ) 本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的).如果文件合法,则将 其移动为由 destination 指定的文件. 如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_fi

javaWeb中的文件上传下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

Android与Asp.Net Web服务器的文件上传下载BUG汇总【更新】

遇到的问题: 1.java.io.IOException: open failed: EINVAL (Invalid argument)异常,在模拟器中的sd卡创建文件夹和文件时报错 出错原因可能是:(1)文件名称中含有不符合规范的字符,比如“:”,“?”或者空格等.(2)需要先创建文件夹目录再创建文件,不能直接创建文件. 2. android.os.NetworkOnMainThreadException异常,从服务器请求数据后,写入文件时报错 出错原因:在主线程内执行了访问http的操作,最