读书人

求批量上传的方法,该如何处理

发布时间: 2012-01-22 22:38:43 作者: rapoo

求批量上传的方法
如何实现文件的批量上传

[解决办法]
孟子E章的

C# 版本

UpLoad.aspx

<%@ Page language= "c# " Codebehind= "UpLoad.aspx.cs " AutoEventWireup= "false " Inherits= "WebPortal.Upload " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " >
<HTML>
<HEAD>
<title> 多文件上传 </title>
<script language= "JavaScript ">
function addFile()
{
var str = ' <INPUT type= "file " size= "50 " NAME= "File "> '
document.getElementById( 'MyFile ').insertAdjacentHTML( "beforeEnd ",str)
}
</script>
</HEAD>
<body>
<form id= "form1 " method= "post " runat= "server " enctype= "multipart/form-data ">
<div align= "center ">
<h3> 多文件上传 </h3>
<P id= "MyFile "> <INPUT type= "file " size= "50 " NAME= "File "> </P>
<P>
<input type= "button " value= "增加(Add) " onclick= "addFile() ">
<input onclick= "this.form.reset() " type= "button " value= "重置(ReSet) ">
<asp:Button Runat= "server " Text= "开始上传 " ID= "UploadButton "> </asp:Button>
</P>
<P>
<asp:Label id= "strStatus " runat= "server " Font-Names= "宋体 " Font-Bold= "True " Font-Size= "9pt "
Width= "500px " BorderStyle= "None " BorderColor= "White "> </asp:Label>
</P>
</div>
</form>
</body>
</HTML>

[解决办法]
UpLoad.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebPortal
{
/// <summary>
/// UpLoad 的摘要说明。
/// 实现多文件上传
/// </summary>
public class Upload : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button UploadButton;
protected System.Web.UI.WebControls.Label strStatus;

private void Page_Load(object sender, System.EventArgs e)
{
/// 在此处放置用户代码以初始化页面
if (this.IsPostBack) this.SaveImages();
}

private Boolean SaveImages()
{
/// '遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;

/// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
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);
}
}
strStatus.Text = strMsg.ToString();
return true;
}
catch(System.Exception Ex)
{
strStatus.Text = Ex.Message;
return false;
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ID = "Upload ";
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}

[解决办法]
客户端Post多个文件,服务端用Request.Files[i]来分别获取。
[解决办法]
jf
[解决办法]
http://www.tomore.com/dispdocnew.php?id=44379
这里有个例子不知道你要的是不是这种效果

读书人网 >asp.net

热点推荐