ASP.NET 一次选多个文件上传

zhangwuji154 2011-06-20 02:33:57
虽然网上有好多多文件上传的例子,但一般说来,简单的例子,需要用户一个一个添加文件。
可以按ctrl/shift一次性选好多文件的,都很复杂,基本都需要flash。

我的需求是,有没有以选择文件夹的方式。待上传文件名都是有规律的,如:abc1.txt/abc2.doc/abc3.txt....
用户只要输入
abc1 -abc100
就能把这100个文件上传。
...全文
508 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-06-21
  • 打赏
  • 举报
回复
<body> 
<form id="form1" runat="server">
<div>
<table style="width: 343px">
<tr>
<td style="width: 100px">
多文件上传</td>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
<asp:FileUpload ID="FileUpload1" runat="server" Width="475px" />
</td>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
<asp:FileUpload ID="FileUpload2" runat="server" Width="475px" /></td>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
<asp:FileUpload ID="FileUpload3" runat="server" Width="475px" /></td>
<td style="width: 100px">
</td>
</tr>
<tr>
<td style="width: 100px">
<asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="一起上传" />
<asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="448px"></asp:Label></td>
<td style="width: 100px">
</td>
</tr>
</table>
</div>
</form>
</body>


using System; 
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void bt_upload_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile.FileName == "" && FileUpload2.PostedFile.FileName == "" && FileUpload3.PostedFile.FileName == "")
{
this.lb_info.Text = "请选择文件!";
}
else
{
HttpFileCollection myfiles = Request.Files;
for (int i = 0; i < myfiles.Count; i++)
{
HttpPostedFile mypost = myfiles[i];
try
{
if (mypost.ContentLength > 0)
{
string filepath = mypost.FileName;//C:\Documents and Settings\Administrator\My Documents\My Pictures\20022775_m.jpg
string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);//20022775_m.jpg
string serverpath = Server.MapPath("~/images/") + filename;//C:\Inetpub\wwwroot\WebSite2\images\20022775_m.jpg
mypost.SaveAs(serverpath);
this.lb_info.Text = "上传成功!";
}
}
catch (Exception ex)
{
this.lb_info.Text = "上传发生错误!原因:" + ex.Message.ToString();
}
}
}
}
}


jquery 批量上传插件Uploadify
参考
chen_ya_ping 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhangwuji154 的回复:]
虽然网上有好多多文件上传的例子,但一般说来,简单的例子,需要用户一个一个添加文件。
可以按ctrl/shift一次性选好多文件的,都很复杂,基本都需要flash。

我的需求是,有没有以选择文件夹的方式。待上传文件名都是有规律的,如:abc1.txt/abc2.doc/abc3.txt....
用户只要输入
abc1 -abc100
就能把这100个文件上传。
[/Quote]
干脆让用户输入也不要了,直接点击按钮就上传文件算了
flyerwing 2011-06-21
  • 打赏
  • 举报
回复
porschev 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangwuji154 的回复:]

引用 2 楼 porschev 的回复:
用uploadify做多文件上传。。。一点也不麻烦。。

这个例子又是flash+php的,我不是惧怕学习新东西,但我实在不想再学php了……
[/Quote]

我只能说你还是怕。。。。http://blog.csdn.net/IHandler/archive/2010/10/26/5966396.aspx
yangchenhuahua 2011-06-21
  • 打赏
  • 举报
回复
不能通过fileuopload循环上传。.net不可能实现只知道客户端路径上传到服务器。必须通过服务器端得控件。
就juquery挺好的。
zhangwuji154 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 porschev 的回复:]
用uploadify做多文件上传。。。一点也不麻烦。。
[/Quote]
这个例子又是flash+php的,我不是惧怕学习新东西,但我实在不想再学php了……
zhangwuji154 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 porschev 的回复:]
有规律的。。那你就页面放一个 fileupload。。把它隐藏掉

后台用这个fileupload.SaveAs上传。。。多个就循环。。反正你文件有规律 。。
[/Quote]
我查过了,有N多大牛说过了,在客户端遍历文件上传是不可行的,这涉及到浏览器安全,如果没经用户同意,网站就能随便遍历、上传文件,那浏览网页也太不安全了。
zhangwuji154 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhulong1111 的回复:]

GOOGLE 一大把的多文件上传
[/Quote]
你们试过没有,N多人说了,不可能,

http://topic.csdn.net/u/20080402/11/94303fad-ed5e-4d99-b1b8-03386b1c3566.html

这里有个把N多文件先用rar压缩,然后在服务器端解压的办法,但我不知道,用户浏览器如果是火狐,能让运行rar.exe吗,用户电脑如果没装RAR,装的是好压怎么办?
zhulong1111 2011-06-20
  • 打赏
  • 举报
回复
GOOGLE 一大把的多文件上传
porschev 2011-06-20
  • 打赏
  • 举报
回复

有规律的。。那你就页面放一个 fileupload。。把它隐藏掉

后台用这个fileupload.SaveAs上传。。。多个就循环。。反正你文件有规律 。。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧