使用FileUpload asp.net上传多个文件

时间:2013-01-25 15:02:18

标签: asp.net database linq file-upload multifile-uploader

我一直在努力解决这个问题。 我有一个Web界面,我在其中创建项目,您应该能够将多个文档上传到服务器,该服务器附加到他们所属的项目。 到目前为止,我只使用一次上传一个文件就可以了。

我的想法可能是在arralylist中添加“文件”对象,然后将其绑定到gridview,然后将其上传到服务器? 我知道这听起来有点令人困惑,但我也很困惑!

当我将单个文件上传到服务器并将文件的ID,名称和上下文保存在数据库中时,这就是我的方法的样子:

                File file = new File();
                Projects_Overview po = new Projects_Overview();
                po.Name = TextBoxName.Text;
                po.Time = time;
                po.Owner = TextBoxOwner.Text;
                po.Responsibility = TextBoxResp.Text;
                po.Created = datecreate;
                po.StartDate = datestart;
                po.FinishDate = datefinish;
                po.ETC = dateETC;
                po.Description = TextBoxDesc.Text;
                po.Comments = TextBoxComments.Text;
                po.Remember = TextBoxRemember.Text;

                ie.Projects_Overview.AddObject(po);
                ie.SaveChanges();

                if (uploadFile.HasFile)
                {
                    string filepath = uploadFile.PostedFile.FileName;
                    string fileName = Path.GetFileName(filepath);


                    file.Context = Path.GetFileNameWithoutExtension(uploadFile.PostedFile.FileName);
                    file.Extension = Path.GetExtension(uploadFile.PostedFile.FileName).Replace(".", "").Substring(0, 4);
                    file.FileName = Guid.NewGuid();

                    string fileSavePath = Server.MapPath("") + "\\Wordfiles\\" + Convert.ToString(file.FileName) + ".upl";
                    uploadFile.PostedFile.SaveAs(fileSavePath);

                    file.ProjectID = po.ID;
                    ie.File.AddObject(file);
                    ie.SaveChanges();

有人可以告诉我如何“附加”多个文件,然后将它们与我上面发布的其他数据一起保存在文件夹中吗?

干杯

1 个答案:

答案 0 :(得分:0)

我相信HTML 5具有处理多文件上传的内置功能(HTML4没有),但我还没有使用过HTML5。使用HTML4,您必须使用外部控件(通常是javascript或flash),因为没有内置机制允许多文件上传。

我确实编写了一个多文件上传页面,该页面使用PLupload(外部控件)来处理HTML4或HTML5,以执行文件拾取。我必须找到一个通用的文件处理程序来将控件连接到.aspx上传页面。我想我发现了here

实施需要几个小时,但效果很好。