`
water84222
  • 浏览: 372788 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

在ASP.NET中实现多文件上传

阅读更多

在以前的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中实现多文件上传(示例源码)

    在ASP.NET中实现多文件上传是一项常见的功能,尤其在构建Web应用程序时,用户可能需要一次上传多个文件,例如图片、文档或视频。本教程将详细解释如何在ASP.NET环境中实现这一功能,包括必要的HTML控件、服务器端...

    ASP.NET中实现多文件上传实例

    在ASP.NET中,多文件上传是一项常见的功能,用于允许用户一次性选择并上传多个文件到服务器。这个实例将向我们展示如何使用C#编程...理解并应用这些知识点,可以有效地在ASP.NET项目中实现实用且安全的多文件上传功能。

    ASP.NET同时上传多个文件_aspxcnup.zip

    在ASP.NET中,实现文件上传功能是一项常见的需求,特别是在用户需要提交表格、图片或者其他大文件时。标题"ASP.NET同时上传多个文件_aspxcnup.zip"指的是一个源码示例,它展示了如何在ASP.NET中实现同时上传多个文件...

    asp.net ajax 多文件上传

    ASP.NET AJAX 多文件上传是一种在Web应用中实现高效、用户友好的文件上传方式,它结合了ASP.NET技术和AJAX(Asynchronous JavaScript and XML)的优势,提供了异步上传功能,使得用户无需等待整个页面刷新就能完成...

    ASP.NET Web API 接收文件上传

    本文将深入探讨如何在ASP.NET Web API中实现文件上传功能,并涉及MIME多部分类型。 首先,让我们了解MIME(Multipurpose Internet Mail Extensions)多部分类型。MIME是一种标准,用于定义电子邮件和其他网络传输的...

    ASP.net实现多文件上传

    在这个场景中,我们关注的是如何使用ASP.NET来实现多文件上传的功能。多文件上传在现代Web应用中非常常见,例如用户可能需要上传一组照片或者文档。与一次性多选文件自动生成多个连接的上传方式不同,这里描述的实现...

    【ASP.NET编程知识】asp.net单文件带进度条上传的解决方案.docx

    在本文中,我们使用ASP.NET缓存机制来实现文件上传进度条的显示。ASP.NET缓存机制能够帮助我们缓存文件上传的信息,从而实现进度条的显示。在本文中,我们使用ASP.NET缓存机制来缓存文件上传的信息,然后使用ajax...

    asp.net 批量上传文件

    在ASP.NET中实现批量文件上传是一项常见的需求,尤其在处理大量用户数据时。在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传...

    asp.net一次性上传多个文件

    本文将深入探讨如何在ASP.NET中实现多文件上传功能。 首先,我们需要了解ASP.NET中的文件上传控件`&lt;input type="file"&gt;`。在HTML表单中,这个控件允许用户选择本地计算机上的文件。在ASP.NET中,我们通常会创建一个...

    asp.net多文件上传

    综上所述,使用jqUploadify插件在ASP.NET中实现多文件上传,需要前端与后端的协同工作,包括设置上传控件、处理上传请求、验证文件、存储文件以及优化用户体验等多个环节。理解并掌握这些知识点,可以帮助你有效地...

    ASP.NET多文件上传

    下面我们将深入探讨如何在ASP.NET中实现多文件上传。 1. **HTML5与表单** 在HTML5中,`&lt;input&gt;`元素的`type="file"`属性支持`multiple`属性,使得用户可以在文件对话框中选择多个文件。例如: ```html []" ...

    asp.net mvc 实现文件上传

    在这个"asp.net mvc 实现文件上传"的例子中,我们将深入探讨如何在ASP.NET MVC应用中实现文件上传功能,这对于任何Web开发人员来说都是一个基本且实用的技能。 首先,我们需要在控制器(Controller)中创建一个动作...

    asp.net自定义固定格式多文件批量上传

    在ASP.NET中,实现自定义固定格式的多文件批量上传是一项常见的需求,这涉及到Web开发中的文件上传控件、服务器端处理以及客户端交互等多个技术环节。以下是对这一知识点的详细阐述: 1. **文件上传控件**:在ASP...

    ASP.NET通过HTML的上传文件标签来上传文件

    这篇博客文章“ASP.NET通过HTML的上传文件标签来上传文件”将引导我们了解如何在ASP.NET环境中实现文件上传功能。 首先,HTML中的`&lt;input type="file"&gt;`标签是用于让用户选择本地文件的关键。在ASP.NET页面中,我们...

    【ASP.NET编程知识】Asp.net实现MVC处理文件的上传下载功能实例教程.docx

    在 Asp.net Mvc 中,文件上传可以通过多种方式实现。第一种方式是使用 HTML 的 form 标签,设置 enctype 属性为 "multipart/form-data",然后使用 input 标签的 type 属性设置为 "file"。例如: ...

    Asp.Net 用Jquery实现多个文件上传及下载

    本篇文章将详细讲解如何利用Jquery库中的jDownload和Uploadify插件在Asp.Net环境中实现多文件上传与下载功能。 **一、Jquery与Asp.Net的结合** Jquery是一个流行的JavaScript库,它简化了DOM操作、事件处理和Ajax...

    asp.net同时上传多个文件

    在ASP.NET中,同时上传多个文件是常见的功能需求,尤其在构建交互性强的Web应用程序时。这个功能使得用户能够一次性上传多个文件...理解并掌握这些知识点,可以帮助你有效地实现在ASP.NET应用中处理多文件上传的需求。

    ASP.NET实现异步上传文件Demo

    ASP.NET实现异步上传文件是一项常见的Web开发任务,它能够显著提升用户体验,因为用户无需等待整个文件上传完成就可以继续操作其他页面元素。在本Demo中,我们将深入探讨如何使用ASP.NET来实现这一功能。 首先,...

    asp.net mvc+Bootstrap Fileinput框架实现的文件上传

    以上是关于"asp.net mvc+Bootstrap Fileinput框架实现的文件上传"的相关知识点,这个示例提供了在ASP.NET MVC环境中集成Bootstrap Fileinput进行文件上传的完整流程,对于开发者来说具有很好的参考价值。通过学习和...

Global site tag (gtag.js) - Google Analytics