`

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

    博客分类:
  • .NET
阅读更多

看到一篇老外的文章,说在asp.net 中,如何先让用户把要上传的文件都选好了,然后一次上传,
今小结如下

首先在页面加一个上传文件控件,一个“attach"按钮,一个listbox,用来存放等待上传的文件名,
一个"UPLOAD"按钮,一个”删除按钮
 <form id="Form1" method="post" runat="server">
   <INPUT id="FileUpload" style="Z-INDEX: 101; LEFT: 83px; WIDTH: 489px; POSITION: absolute; TOP: 67px; HEIGHT: 22px"
  type="file" size="62" runat="server">
   <asp:button id="btnAttach" style="Z-INDEX: 102; LEFT: 591px; POSITION: absolute; TOP: 66px"
    runat="server" Text="Attach"></asp:button><asp:listbox id="ListBox1" style="Z-INDEX: 103; LEFT: 84px; POSITION: absolute; TOP: 104px" runat="server"
    Width="565px" Height="93px"></asp:listbox><asp:button id="btnUpload" style="Z-INDEX: 104; LEFT: 91px; POSITION: absolute; TOP: 198px"
    runat="server" Text="Upload"></asp:button><asp:button id="btnDelete" style="Z-INDEX: 105; LEFT: 684px; POSITION: absolute; TOP: 131px"
    runat="server" Text="Delete" Width="58px"></asp:button>
   <asp:Label id="Label1" style="Z-INDEX: 106; LEFT: 166px; POSITION: absolute; TOP: 199px" runat="server"
    Width="476px" ForeColor="Red"></asp:Label></form>

之后,在"attach"按钮中代码如下:
private void btnAttach_Click(object sender, System.EventArgs e)
  {
   // Save the attached file to fileName variable
   string fileName = FileUpload.PostedFile.FileName;

   // If the counter is null then create one with default value equal to 0
   if(ViewState["i"] == null)
   {
    ViewState["i"]= 0;
   }
   // Check if a file is selected
   if(fileName != null || fileName != string.Empty)
   {
    // Add  it to the collection
    ListBox1.Items.Add(FileUpload.PostedFile.FileName);

    // Save an index for each selected file
    int i = Convert.ToInt32(ViewState["i"]);

    // Save the fileupload control into a different session
    Session["myupload" + i] = FileUpload;

    // Increment the counter
    i++;

    // Set the ViewSate to the latest counter value.
    ViewState["i"] = i;
    
   }
  }

很明显,其实是用viewstate来存放用户上传的实际文件名,这需要用户在选择文件后用
"attach"按钮来将文件添加到那个listbox框中去
之后是“upload"的代码,
 private void btnUpload_Click(object sender, System.EventArgs e)
  {
   int sessionCount = Session.Count;
   
   
   ///int sessionCount = Convert.ToInt32(ViewState["i"]);
   for( int i =sessionCount-1;i>=0;i--)
   {
    if(sessionCount <= 3)
    {
     HtmlInputFile hif = (HtmlInputFile)Session["myupload" + i];
     if(hif.PostedFile.ContentLength <= 500000)
     {
      string storePath = Server.MapPath("~") + "/MultipleUpload";
      if(!Directory.Exists(storePath))
       Directory.CreateDirectory(storePath);
      hif.PostedFile.SaveAs(storePath  + "/" +  Path.GetFileName(hif.PostedFile.FileName));
      Label1.Text = "Your Files are uploaded successfully";
      ListBox1.Items.Clear();
     }
     else
     Label1.Text = "An error occured";
    }
    else
     Label1.Text = "You have exceeded the maximum number of files to be uploaded (3)";
     
   }
   Session.RemoveAll();
  }

   实际上是将所有的要上传的文件从session里取回来,然后每一个逐一上传
最后是把要上传的文件从listbox里删除的代码,在session里remove掉
private void btnDelete_Click(object sender, System.EventArgs e)
  {
   if(ListBox1.SelectedIndex > -1)
   {
    int uploadedFileIndex = ListBox1.SelectedIndex;
    Session.Remove("myupload" + uploadedFileIndex);
    ListBox1.Items.Remove(ListBox1.SelectedValue);
   }
  }

  总结一下,用在上传文件不多的情况下比较好,因为要用session




分享到:
评论

相关推荐

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

    在ASP.NET中,文件上传是一个常见的需求,尤其是当用户需要一次性上传多个文件时。本文将深入探讨如何在ASP.NET中实现多文件上传功能。 首先,我们需要了解ASP.NET中的文件上传控件`&lt;input type="file"&gt;`。在HTML...

    asp.net ajax 多文件上传

    在ASP.NET中,实现多文件上传通常会使用`&lt;asp:FileUpload&gt;`控件,它可以一次性选择多个文件。但是,由于HTTP协议的限制,浏览器默认一次只能上传一个文件。为了解决这个问题,开发者通常会借助AJAX技术,通过创建...

    Asp.net同时上传多个文件

    在Asp.net中,同时上传多个文件是一项常见的需求,尤其在构建交互性强的Web应用程序时。这个功能使得用户能够一次性上传多个文件,提高了用户体验。在本文中,我们将深入探讨如何在Asp.net环境下实现这个功能。 ...

    asp.net同时上传多个文件

    在ASP.NET中,同时上传多个文件是常见的功能需求,尤其在构建交互性强的Web应用程序时。这个功能使得用户能够一次性上传多个文件,提高了用户体验。在本文中,我们将深入探讨如何在ASP.NET环境中实现这一功能。 ...

    asp.net 批量上传文件

    在`jqueryForm.aspx`页面中,我们需要创建一个包含多个`&lt;input type="file"&gt;`元素的表单,用户可以在这里选择多个文件进行上传。 `Web.config`文件是ASP.NET应用程序的配置文件,其中包含了应用程序运行时所需的...

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

    web.config文件是一个ASP.NET应用程序的配置文件,能够帮助我们配置文件上传的功能。在本文中,我们使用web.config文件来配置文件上传的最大值。 知识点8:使用MSDN查看文件上传的限制 在本文中,我们使用MSDN来...

    ASP.NET同时上传多个文件

    在ASP.NET中,同时上传多个文件是常见的功能需求,尤其在处理用户批量上传图片、文档等场景下。本文将深入探讨如何使用ASP.NET 1.1版本和C#语言实现这一功能。 首先,理解基本原理:ASP.NET 1.1默认情况下只允许...

    [上传下载]ASP.NET同时上传多个文件_aspxcnup(ASP.NET源码).rar

    在ASP.NET中,开发者经常需要处理用户通过网页上传文件的需求,尤其是当用户需要一次性上传多个文件时,这种功能的实现就显得尤为重要。本压缩包中的源码可能是对这一功能的具体实现,为其他开发者提供了一个参考...

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

    1. **文件上传控件**:在ASP.NET中,我们可以使用`&lt;asp:FileUpload&gt;`控件来允许用户选择多个文件进行上传。通过设置`AllowMultiple`属性为`true`,可以支持HTML5的多文件选择功能。 2. **自定义固定格式**:这里的...

    asp.net+bootstrap可以一次性上传多个文件

    在“asp.net+bootstrap多文件上传”场景中,开发人员通常会利用ASP.NET的服务器控件,如`&lt;asp:FileUpload&gt;`,来允许用户选择多个文件进行上传。在HTML5中,`&lt;input type="file"&gt;`元素可以通过设置`multiple`属性来...

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

    在ASP.NET中,多文件上传是一项常见的功能,用于允许用户一次性选择并上传多个文件到服务器。这个实例将向我们展示如何使用C#编程语言在ASP.NET环境中实现这一功能。以下是一份详细的步骤和知识点解析: 1. **HTML...

    在ASP.NET中实现多文件上传(示例源码)

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

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

    在ASP.NET页面中,我们可以创建一个这样的表单元素,让用户选择要上传的文件。例如: ```html 上传" /&gt; ``` 注意,`enctype="multipart/form-data"`属性是必需的,因为它指示浏览器以多部分格式发送表单数据...

    ASP.NET Web API 接收文件上传

    在文件上传场景中,MIME多部分类型常用于表示一个消息体包含多个部分,例如在HTTP请求中同时发送文本数据和文件数据。当用户通过表单上传文件时,浏览器通常会将文件和表单数据打包成MIME多部分的格式。 要实现ASP...

    ASP.net实现多文件上传

    在JavaScript中,HTML5引入了`&lt;input type="file"&gt;`元素的multiple属性,允许用户一次选择多个文件。通过监听此元素的change事件,我们可以获取到用户选择的文件列表。在文件选择后,可以使用File API对这些文件进行...

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

    标题"ASP.NET同时上传多个文件_aspxcnup.zip"指的是一个源码示例,它展示了如何在ASP.NET中实现同时上传多个文件的功能。 在ASP.NET中,实现文件上传主要涉及到HTML表单、控件以及服务器端的处理。在HTML表单中,`...

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

    在Asp.Net开发中,有时候我们需要处理用户上传和下载多个文件的需求。这通常涉及到前端交互和后端处理的配合。本篇文章将详细讲解如何利用Jquery库中的jDownload和Uploadify插件在Asp.Net环境中实现多文件上传与下载...

    【ASP.NET编程知识】ASP.NET Core文件上传与下载实例(多种上传方式).docx

    IFormFile 是 ASP.NET Core 中的一个接口,提供了文件上传的相关信息,包括 ContentType、ContentDisposition、Headers、Length、Name 和 FileName 等。使用 IFormFile 可以方便地处理文件上传的逻辑。 知识点4: ...

    ASP.NET多文件上传

    ASP.NET多文件上传是Web开发中的一个重要功能,它允许用户一次性上传多个文件,极大地提高了用户交互性和效率。在ASP.NET框架中,实现这一功能需要掌握一些核心知识点。 首先,了解HTTP协议的基础至关重要。HTTP...

Global site tag (gtag.js) - Google Analytics