在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下:
MultiUpload.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="MultiUpload.aspx.vb"
Inherits="aspxWeb.MultiUpload" %>
<!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">
<center>
<asp:Label Runat="server" ID="MyTitle"></asp:Label>
<P id="MyFile"><INPUT type="file" size="50" NAME="File"></P>
<P>
<input type="button" value="增加(Add)" onclick="addFile()">
<asp:Button Runat="server" Text="上传" ID="Upload"></asp:Button>
<input onclick="this.form.reset()" type="button" value="重置(ReSet)">
</P>
</center>
<P align="center">
<asp:Label id="strStatus" runat="server" Font-Names="宋体" Font-Bold="True"
Font-Size="9pt" Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>
</P>
</form>
</body>
</HTML>
后代码:MultiUpload.aspx.vb
Public Class MultiUpload
Inherits System.Web.UI.Page
Protected WithEvents Upload As System.Web.UI.WebControls.Button
Protected WithEvents MyTitle As System.Web.UI.WebControls.Label
Protected WithEvents strStatus As System.Web.UI.WebControls.Label
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MyTitle.Text = "<h3>多文件上传</h3>"
Upload.Text = "开始上传"
If (Me.IsPostBack) Then Me.SaveImages()
End Sub
Private Function SaveImages() As System.Boolean
'遍历File表单元素
Dim files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files
'状态信息
Dim strMsg As New System.Text.StringBuilder("上传的文件分别是:<hr color=red>")
Dim iFile As System.Int32
Try
For iFile = 0 To files.Count - 1
'检查文件扩展名字
Dim postedFile As System.Web.HttpPostedFile = files(iFile)
Dim fileName, fileExtension As System.String
fileName = System.IO.Path.GetFileName(postedFile.FileName)
If Not (fileName = String.Empty) Then
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)
End If
Next
strStatus.Text = strMsg.ToString()
Return True
Catch Ex As System.Exception
strStatus.Text = Ex.Message
Return False
End Try
End Function
End Class
C#版本
前台代码
<script language="Javascript">
function addFile()
{
var str = '<INPUT type="file" size="30" NAME="File"><br>'
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
}
</script>
<form id="form1" method="post" runat="server" enctype="multipart/form-data">
<div align="center">
<h3>多文件上传</h3>
<P id="MyFile"><INPUT type="file" size="30" NAME="File"><br></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>
后台代码
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,file_id;
//取出精确到毫秒的时间做文件的名称
int year = System.DateTime.Now.Year;
int month = System.DateTime.Now.Month;
int day = System.DateTime.Now.Day;
int hour = System.DateTime.Now.Hour;
int minute = System.DateTime.Now.Minute;
int second = System.DateTime.Now.Second;
int millisecond = System.DateTime.Now.Millisecond;
string my_file_id = year.ToString() + month.ToString() + day.ToString() + hour.ToString() + minute.ToString() + second.ToString() + millisecond.ToString()+iFile.ToString();
fileName = System.IO.Path.GetFileName(postedFile.FileName);
fileExtension = System.IO.Path.GetExtension(fileName);
file_id = my_file_id+fileExtension;
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");
strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>");
strMsg.Append("上传文件的文件名:" + file_id + "<br>");
strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>");
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + file_id);
}
}
strStatus.Text = strMsg.ToString();
return true;
}
catch(System.Exception Ex)
{
strStatus.Text = Ex.Message;
return false;
}
}
分享到:
相关推荐
在ASP.NET中实现多文件上传是一项常见的功能,尤其在构建Web应用程序时,用户可能需要一次上传多个文件,例如图片、文档或视频。本教程将详细解释如何在ASP.NET环境中实现这一功能,包括必要的HTML控件、服务器端...
在ASP.NET中,多文件上传是一项常见的功能,用于允许用户一次性选择并上传多个文件到服务器。这个实例将向我们展示如何使用C#编程...理解并应用这些知识点,可以有效地在ASP.NET项目中实现实用且安全的多文件上传功能。
在本文中,我们使用ASP.NET缓存机制来实现文件上传进度条的显示。ASP.NET缓存机制能够帮助我们缓存文件上传的信息,从而实现进度条的显示。在本文中,我们使用ASP.NET缓存机制来缓存文件上传的信息,然后使用ajax...
在ASP.NET中,实现文件上传功能是一项常见的需求,特别是在用户需要提交表格、图片或者其他大文件时。标题"ASP.NET同时上传多个文件_aspxcnup.zip"指的是一个源码示例,它展示了如何在ASP.NET中实现同时上传多个文件...
ASP.NET AJAX 多文件上传是一种在Web应用中实现高效、用户友好的文件上传方式,它结合了ASP.NET技术和AJAX(Asynchronous JavaScript and XML)的优势,提供了异步上传功能,使得用户无需等待整个页面刷新就能完成...
本文将深入探讨如何在ASP.NET Web API中实现文件上传功能,并涉及MIME多部分类型。 首先,让我们了解MIME(Multipurpose Internet Mail Extensions)多部分类型。MIME是一种标准,用于定义电子邮件和其他网络传输的...
在这个场景中,我们关注的是如何使用ASP.NET来实现多文件上传的功能。多文件上传在现代Web应用中非常常见,例如用户可能需要上传一组照片或者文档。与一次性多选文件自动生成多个连接的上传方式不同,这里描述的实现...
在ASP.NET中实现批量文件上传是一项常见的需求,尤其在处理大量用户数据时。在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传...
本文将深入探讨如何在ASP.NET中实现多文件上传功能。 首先,我们需要了解ASP.NET中的文件上传控件`<input type="file">`。在HTML表单中,这个控件允许用户选择本地计算机上的文件。在ASP.NET中,我们通常会创建一个...
综上所述,使用jqUploadify插件在ASP.NET中实现多文件上传,需要前端与后端的协同工作,包括设置上传控件、处理上传请求、验证文件、存储文件以及优化用户体验等多个环节。理解并掌握这些知识点,可以帮助你有效地...
下面我们将深入探讨如何在ASP.NET中实现多文件上传。 1. **HTML5与表单** 在HTML5中,`<input>`元素的`type="file"`属性支持`multiple`属性,使得用户可以在文件对话框中选择多个文件。例如: ```html []" ...
在这个"asp.net mvc 实现文件上传"的例子中,我们将深入探讨如何在ASP.NET MVC应用中实现文件上传功能,这对于任何Web开发人员来说都是一个基本且实用的技能。 首先,我们需要在控制器(Controller)中创建一个动作...
在ASP.NET中,实现自定义固定格式的多文件批量上传是一项常见的需求,这涉及到Web开发中的文件上传控件、服务器端处理以及客户端交互等多个技术环节。以下是对这一知识点的详细阐述: 1. **文件上传控件**:在ASP...
在ASP.NET中,单文件上传是一项常见的功能,用于允许用户通过网页将本地计算机上的单个文件上传到服务器。本文将详细讲解如何实现这一功能,并提供相关的源代码。 首先,我们需要在HTML页面上创建一个`<input>`标签...
这篇博客文章“ASP.NET通过HTML的上传文件标签来上传文件”将引导我们了解如何在ASP.NET环境中实现文件上传功能。 首先,HTML中的`<input type="file">`标签是用于让用户选择本地文件的关键。在ASP.NET页面中,我们...
在 Asp.net Mvc 中,文件上传可以通过多种方式实现。第一种方式是使用 HTML 的 form 标签,设置 enctype 属性为 "multipart/form-data",然后使用 input 标签的 type 属性设置为 "file"。例如: ...
本篇文章将详细讲解如何利用Jquery库中的jDownload和Uploadify插件在Asp.Net环境中实现多文件上传与下载功能。 **一、Jquery与Asp.Net的结合** Jquery是一个流行的JavaScript库,它简化了DOM操作、事件处理和Ajax...
在ASP.NET中,同时上传多个文件是常见的功能需求,尤其在构建交互性强的Web应用程序时。这个功能使得用户能够一次性上传多个文件...理解并掌握这些知识点,可以帮助你有效地实现在ASP.NET应用中处理多文件上传的需求。