asp.net html控件的File控件實現(xiàn)多文件上傳實例分享
更新時間:2013年02月17日 11:57:51 作者:
asp.net中html控件的File控件實現(xiàn)多文件上傳簡單實例,開發(fā)工具vs2010使用c#語言,感興趣的朋友可以了解下,必定是多文件上傳值得學習,或許本文所提供的知識點對你有所幫助
asp.net多文件上傳使用html控件的File控件,在form中就需要加入【 enctype="multipart/form-data"】。
up3.aspx文件代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="up3.aspx.cs" Inherits="up3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function addFile() {
var odiv = document.getElementById("MyFile");
var str = "<div><input name='File' type='file' /></div>";
odiv.insertAdjacentHTML("beforeEnd", str);
}
function resetFile() {
var odiv = document.getElementById("MyFile");
odiv.innerHTML = "<div><input name='File' type='file' /></div>";
}
</script>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="button" value="增加" onclick="addFile()" />
<input type="button" value="重置" onclick="resetFile()" />
<div id="MyFile">
<div><input name="File" type="file" /></div>
</div>
<asp:Button runat="server" Text="上傳" ID="Button1" OnClick="Button1_Click" BorderColor="Desktop"
BorderWidth="1px" Height="20px" Width="60px"></asp:Button>
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
up3.aspx.cs文件代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public partial class up3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string upPath = "/up/"; //上傳文件路徑
int upLength = 5; //上傳文件大小
string upFileExtName = "|bmp|jpg|jpeg|png|gif|";
HttpFileCollection _files = System.Web.HttpContext.Current.Request.Files;
int flag = _files.Count;
int flagN = 0;
int flagE = 0;
int flagEE = 0;
string flagEEstr = "";
for (int i = 0; i < _files.Count; i++)
{
string name = _files[i].FileName;
FileInfo fi = new FileInfo(name);
string oldfilename = fi.Name;
string scExtension = fi.Extension.ToLower();
string fileName = DateTime.Now.ToString("yyyyMMddhhmmssfff") + fi.Extension; // 文件名稱,當前時間(yyyyMMddhhmmssfff)
string webFilePath = Server.MapPath(upPath) + fileName; // 服務(wù)器端文件路徑
if (upFileExtName.IndexOf(scExtension.Replace(".", "")) == -1)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,文件名[" + oldfilename + "],文件類型不符合!";
continue;
}
if ((fi.Length / (1024 * 1024)) > upLength)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,文件名[" + oldfilename + "],超出" + upLength + "M大小限制!";
continue;
}
try
{
_files[i].SaveAs(webFilePath);
}
catch (Exception ex)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,上傳異?!?+ex.Message+"】";
}
}
Label1.Text = "總文件【" + flag + "】,上傳成功文件【" + flagN + "】,異常文件【" + (flagE + flagEE) + "】【" + flagEEstr + "】";
}
}
up3.aspx文件代碼
復制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="up3.aspx.cs" Inherits="up3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function addFile() {
var odiv = document.getElementById("MyFile");
var str = "<div><input name='File' type='file' /></div>";
odiv.insertAdjacentHTML("beforeEnd", str);
}
function resetFile() {
var odiv = document.getElementById("MyFile");
odiv.innerHTML = "<div><input name='File' type='file' /></div>";
}
</script>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="button" value="增加" onclick="addFile()" />
<input type="button" value="重置" onclick="resetFile()" />
<div id="MyFile">
<div><input name="File" type="file" /></div>
</div>
<asp:Button runat="server" Text="上傳" ID="Button1" OnClick="Button1_Click" BorderColor="Desktop"
BorderWidth="1px" Height="20px" Width="60px"></asp:Button>
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
up3.aspx.cs文件代碼
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public partial class up3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string upPath = "/up/"; //上傳文件路徑
int upLength = 5; //上傳文件大小
string upFileExtName = "|bmp|jpg|jpeg|png|gif|";
HttpFileCollection _files = System.Web.HttpContext.Current.Request.Files;
int flag = _files.Count;
int flagN = 0;
int flagE = 0;
int flagEE = 0;
string flagEEstr = "";
for (int i = 0; i < _files.Count; i++)
{
string name = _files[i].FileName;
FileInfo fi = new FileInfo(name);
string oldfilename = fi.Name;
string scExtension = fi.Extension.ToLower();
string fileName = DateTime.Now.ToString("yyyyMMddhhmmssfff") + fi.Extension; // 文件名稱,當前時間(yyyyMMddhhmmssfff)
string webFilePath = Server.MapPath(upPath) + fileName; // 服務(wù)器端文件路徑
if (upFileExtName.IndexOf(scExtension.Replace(".", "")) == -1)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,文件名[" + oldfilename + "],文件類型不符合!";
continue;
}
if ((fi.Length / (1024 * 1024)) > upLength)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,文件名[" + oldfilename + "],超出" + upLength + "M大小限制!";
continue;
}
try
{
_files[i].SaveAs(webFilePath);
}
catch (Exception ex)
{
flagEE = flagEE + 1;
flagEEstr = flagEEstr + "第" + (i + 1) + "個文件,上傳異?!?+ex.Message+"】";
}
}
Label1.Text = "總文件【" + flag + "】,上傳成功文件【" + flagN + "】,異常文件【" + (flagE + flagEE) + "】【" + flagEEstr + "】";
}
}
相關(guān)文章
Asp.net Core中如何使用中間件來管理websocket
這篇文章主要給大家介紹了關(guān)于Asp.net Core中如何使用中間件來管理websocket的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-09-09
ASP.NET MVC中使用JavaScriptResult的用法示例
這篇文章主要介紹了ASP.NET MVC中使用JavaScriptResult的用法,結(jié)合實例形式分析了采用javascript動態(tài)設(shè)置標簽樣式以及使用MVC中的JavaScriptResult來實現(xiàn)同樣效果的相關(guān)技巧,需要的朋友可以參考下2016-08-08
ASP.NET對SQLServer的通用數(shù)據(jù)庫訪問類
這篇文章主要實現(xiàn)了ASP.NET對SQLServer的通用數(shù)據(jù)庫訪問類2016-02-02
ASP.NET ashx實現(xiàn)無刷新頁面生成驗證碼
這篇文章主要為大家詳細介紹了ASP.NET ashx實現(xiàn)無刷新頁面生成驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
asp.net 選擇excel類型文件,利用Dos命令成批復制文件
選擇excel類型文件,利用Dos命令成批復制文件2009-12-12
.Net?core?Blazor+自定義日志提供器實現(xiàn)實時日志查看器的原理解析
我們經(jīng)常遠程連接服務(wù)器去查看日志,比較麻煩,如果直接訪問項目的某個頁面就能實時查看日志就比較奈斯了,結(jié)合blazor實現(xiàn)了基本效果,這篇文章主要介紹了.Net?core?Blazor+自定義日志提供器實現(xiàn)實時日志查看器,需要的朋友可以參考下2022-10-10
使用ASP.NET模板生成HTML靜態(tài)頁面的五種方案
使用ASP.NET模版生成HTML靜態(tài)頁面并不是難事,主要是使各個靜態(tài)頁面間的關(guān)聯(lián)和鏈接如何保持完整。本文介紹了使用ASP.NET模版生成HTML靜態(tài)頁面的五種方案2011-11-11

