一场误会

Standing On Shoulders of Gaint

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

实现多附件的上传,俗话说:语言不如文字,文字不如图形。先传个页面看看
 
可以点击“添加”按钮任意添加上传文件的个数,也可以通过“取消”按钮取消多个文件的上传。这样可以一次上传N个附件,而不需要每上传一个附件点击一次上传按钮。达到了一次上传,一次成功的效果。
1、JS代码

 1function addFileControl()
 2         {
 3         var str='<input type=file name=File size=40>'
 4         document.getElementById('FileCollection').insertAdjacentHTML("beforeEnd",str)
 5         }

 6         
 7          function delFile()
 8         {
 9            var el = document.getElementById("FileCollection");
10            if (el.hasChildNodes())
11               el.removeChild(el.lastChild);
12         }
 
13


    2. 前台代码 

1<p id="FileCollection">
2                                        <input type="file" name="File" id="file" size="40" />
3                                    <p>
4                                        <%--<input type =image onclick="addFileControl()"   src="../Images/tianjia.gif"  value="增加"/>--%>
5                                        <input type="button" value="增加" onclick="addFileControl()" class="button" />
6                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
7                                        <input type="button" value="取消" onclick="delFile()" class="button" /></p>
8

         
 3、后台CS代码

 1System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
 2        int fileCount;
 3        string Extension = "";
 4        string SavedName = "";
 5        string upname = "";
 6        string savedpath = "";
 7        string realname="";
 8        string virtualname = "";
 9        string path = "";
10        string OppPath = "UploadFile";
11        try
12        {
13            if (!Directory.Exists(Server.MapPath(OppPath)))
14                Directory.CreateDirectory(Server.MapPath(OppPath));
15
16            OppPath += "/";
17            string AbsPath = Server.MapPath(OppPath);
18
19            for (fileCount = 0; fileCount < files.Count; fileCount++)
20            {
21
22                //定义访问客户端上传文件的对象
23                System.Web.HttpPostedFile postedFile = files[fileCount];
24                string fileName, fileExtension;
25                fileName = System.IO.Path.GetFileName(postedFile.FileName);
26                if (fileName != string.Empty)
27                {
28                    Extension = System.IO.Path.GetExtension(fileName);
29                    ////取上传文件的文件名
30
31                    upname = System.IO.Path.GetFileName(fileName);
32                    //系统自动产生的日期型文件名
33
34
35                    SavedName = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now);
36                    ////把文件保存到UploadFile文件中
37
38
39                    postedFile.SaveAs(AbsPath+SavedName + upname);
40                    string strJS = "<script>";
41                    strJS = strJS + "parent.HtmlEdit.focus();";
42                    strJS = strJS + "var range = parent.HtmlEdit.document.selection.createRange();";
43                    strJS = strJS + "range.pasteHTML('<a href=\"" + savedpath + SavedName + upname;
44                    strJS = strJS + "\">" + SavedName +"</a>');";
45                    strJS = strJS + "parent.HtmlEdit.focus();";
46                    strJS = strJS + "</script>";
47                    Response.Write(strJS);
48                    virtualname +=OppPath+ SavedName + upname + ",";
49                    realname += upname + ",";
50                    path = savedpath;
51                }

52            }

53           
54        }

55        catch (System.Exception error)
56        {
57            throw error;
58        }
 1public int  File_pre_Appendix(int i, int j,string appendixname,string appendixpath)
 2        {
 3            if ((i != 0&& (appendixname != ""))
 4            {
 5                //对文件的附件进行存储
 6                string[] sArray = appendixname.Split(',');
 7                foreach (string strArr in sArray)
 8                {
 9
10                    if (strArr != "")
11                    {
12                        //取上传文件的文件名
13                        file.GetID = i;
14                        file.AppendixNmae = OppPath + strArr.ToString().Trim();
15                        file.AppendixAddress = appendixpath.Trim();
16                        file.UserID = UserID;
17                        file.AppendixTypeID = j;
18                        filedb.insertAppendix(file);
19                    }

20
21                }

22                return 1;
23            }

24            else
25            {
26                return 0;
27            }

28    }

29 //获取附件表中的附件名称(路径)
30            string OppPath =fileDB.GetFile_AppendixPath((object)AppendixID);
31              //获取绝对路径
32            string AbsPath = Page.Server.MapPath(OppPath );
33            if (System.IO.File.Exists(AbsPath))
34            {
35                //删除硬盘文件
36                System.IO.File.Delete(AbsPath);
37            }
 
38
posted on 2007-02-07 21:00  一场误会  阅读(4792)  评论(11编辑  收藏  举报