日期:2014-05-18  浏览次数:20422 次

使用FileUpload控件实现多文件上传的问题??
我在一个应用中需要实现一次性上传一个或多个文件。传统的作法是:你想上传几个文件,通过JS生成几个Input,然后一个个上传。
   在这里,我想要这样的实现效果:我点击这个FileupLoad1,将选好的文件FileName存入到一个ListBox控件中。然后再开始“上传选定的文件”。
   假定我的lstFiles(ListBox控件)的内容如下:
  D:\Test.Txt
  D:\My\Abc.rar
  我在btnSendFile_Click中怎样实现上次将这个两个文件上传呢?
  {
  for (int i=0;i<lstFiles.Items.Count;i++)
  {
  string FileName=lstFiles.Items[i].ToString();
  string SavePath=Server.MapPath("..\\FileUpLoads\\");
  ....
  这里该怎么办才能实现呢??????
  }
  }


------解决方案--------------------
HttpFileCollection files = Request.Files;

遍历files即可。
------解决方案--------------------
///'遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;

/// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder("您输入的用户名是:" + TextBox1.Text + "<br/>");
strMsg.Append("上传的文件分别是:<hr color='red'/>");
try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
///'检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");
strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>");
strMsg.Append("上传文件的文件名:" + fileName + "<br>");
strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>");
///'可根据扩展名字的不同保存到不同的文件夹
///注意:可能要修改你的文件夹的匿名写入权限。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName);
}
}
------解决方案--------------------
ListBox控件,不能获取本地文件,你只能通过fileupload去做。
在客户端,你也无法通过fileupload获取到文件路径,显示在listbox里。
换个思路试试吧。
------解决方案--------------------
只有一个fileupload控件是无法上传多个文件的,除非使用Firefox

------解决方案--------------------
或者可不可以这样,页面多放几个FileupLoad,但用css的display控制只显示一个

当选择了一个文件是,往listbox里面加文件名,同时隐藏这个fileupload,显示下一个upload

用js来控制fileipload列表的显示与否,应该可以

提交的时候遍历fileupload即可,listbox只起一个显示的作用

首先说明,没这么做过,仅仅是想法而已
------解决方案--------------------
遍历 files文件
HttpFileCollection files = Request.Files;


------解决方案--------------------
可以试试这个
p://download.csdn.net/detail/ljx09195117/3458561
------解决方案--------------------
多个fileupload一样可以用js去控制css,给用户的体验也只有一个fileupload供选择,和一个的时候没啥差别,主要是你要用js去控制显示而已,比如选择了文件,或者你还可以删除你已经选择了的文件