HTML代码如下,需要注意的是Form中添加的语句
 1<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2
 3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4
 5<html xmlns="http://www.w3.org/1999/xhtml" >
 6<head runat="server">
 7    <title>Upload File</title>
 8    <script language="javascript" type="text/javascript">
 9    function addFile(index)
10    {
11        var obj = document.getElementById('file' + index);
12        if(obj == null)
13        {
14            var strFile = '<span id=\"spFile\" + ' + index + '>文件次序:' + index + '&nbsp;&nbsp;<input id="file' + index + '" name="file" type="file" style=\"width:530px\" onchange=\"addFile(' + ( index + 1 ) + ')\" contentEditable=\"false\" /><br /></span>';
15            document.getElementById('divFile').insertAdjacentHTML('beforeEnd', strFile);
16        }

17    }

18    
</script>
19</head>
20<body>
21    <form id="form1" runat="server" enctype="multipart/form-data"><%--此处一定要添加上这个==>>enctype="multipart/form-data"--%>
22    <div>
23        <asp:Button ID="btnUpload" runat="server" Text="上传文件" OnClick="btnUpload_Click" />
24        <br />
25        <div id="divFile">
26        <span id="spFile1">
27            文件次序:1&nbsp;&nbsp;<input id="file1" name="file" type="file" style="width:530px" onchange="addFile(2)" contentEditable="false" /><br /></span>
28        </div>
29    </div>
30    </form>
31</body>
32</html>
33

 

btnUpload_Click事件代码

 1    protected void btnUpload_Click(object sender, EventArgs e)
 2    {
 3        for (int i = 0; i < Request.Files.Count; i++)
 4        {
 5            //关于上传文件大小,默认是4MB,如果需要将此文件扩大
 6            //请在web.config中<system.web>添加如下语句
 7            //<httpRuntime maxRequestLength="文件最大值" executionTimeout="3000"/>
 8            //这里文件最大值的单位是kb,而程序中的大小的单位是b
 9            //当然这里也可以进行大小的过滤
10            if (Request.Files[i].ContentLength > 0)
11            {
12                //获取文件的扩展名,在这里可以控制上传文件的格式,假设仅仅允许上传rar文件
13                string strExtension = System.IO.Path.GetExtension(Request.Files[i].FileName.ToLower());
14                if (strExtension != ".rar")
15                {
16                    //提示用户格式不正确
17                    return;
18                }

19                //最好自己写一个方法保证上传上去的文件名是绝对的唯一,这样可以保证一些不必要的麻烦
20                string strFileName = DateTime.Now.ToString("yyyyMMddmmHHss");
21                //保存路径,这个一般存放在web.config文件中
22                //这个文件夹需要考虑到权限的问题
23                string strPath = "c:\\upload\\";
24                //上传图片
25                Request.Files[i].SaveAs(strPath + strFileName + strExtension);
26            }

27        }
        
28    }
posted on 2007-07-18 17:21  seamanhy  阅读(287)  评论(0编辑  收藏  举报