asp.net 多文件上傳,兼容IE6/7/8,提供完整代碼下載
更新時(shí)間:2010年07月11日 13:07:31 作者:
項(xiàng)目中需要使用多文件上傳,上傳的文件保存在磁盤文件上,文件相關(guān)信息保存在數(shù)據(jù)庫(kù)里。
最終效果如下:

現(xiàn)貼出核心代碼如下:
aspx里的代碼:
<div style="text-align: center">
<div style="width: 200px;">
<input type="file" size="50" name="File" />
<span id="upload"></span>
<br />
<input type="button" name="button" value="添加文件" onclick="addInput()">
<input type="button" name="button" value="刪除文件" onclick="deleteInput()">
</div>
<div style="margin: 10px 0 10px 0;width: 200px;">
<asp:Button runat="server" Text="上傳" ID="btnUpload" OnClick="btnUpload_Click"></asp:Button><br/>
<asp:Label ID="strStatus" runat="server"></asp:Label>
</div>
</div>
在添加文件和刪除文件里調(diào)用了Javascript,代碼如下:
<script type="text/javascript">
var attachname = "uploadfile";
var i = 1;
function addInput() {
if (i > 0) {
var attach = attachname + i;
if (createInput(attach))
i = i + 1;
}
}
function deleteInput() {
if (i > 1) {
i = i - 1;
if (!removeInput())
i = i + 1;
}
}
function createInput(nm) {
var aElement = document.createElement("input");
aElement.name = nm;
aElement.id = nm;
aElement.type = "file";
aElement.size = "50";
if (document.getElementById("upload").appendChild(aElement) == null)
return false;
return true;
}
function removeInput(nm) {
var aElement = document.getElementById("upload");
if (aElement.removeChild(aElement.lastChild) == null)
return false;
return true;
}
</script>
后臺(tái)響應(yīng)保存文件的操作,保存文件關(guān)鍵的一句是要讀取到文件列表,
//遍歷File表單元素
HttpFileCollection files = HttpContext.Current.Request.Files;
上傳以后保存文件的代碼如下:
protected void btnUpload_Click(object sender, EventArgs e)
{
//遍歷File表單元素
HttpFileCollection files = HttpContext.Current.Request.Files;
System.Text.StringBuilder strMsg = new StringBuilder("<br/>");
strMsg.Append("上傳的文件分別是:</br>");
try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
//檢查文件擴(kuò)展名字
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("上傳文件的擴(kuò)展名:" + fileExtension + "<br/>");
strMsg.Append("上傳文件的大?。? + postedFile.ContentLength + "<br/>");
//可擴(kuò)展功能:
//保存文件時(shí)可以設(shè)置保存目錄
//可以重命名文件保存
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName);
}
}
strStatus.Text = strMsg.ToString();
}
catch (System.Exception Ex)
{
strStatus.Text = Ex.Message;
}
}
完整代碼下載

現(xiàn)貼出核心代碼如下:
aspx里的代碼:
復(fù)制代碼 代碼如下:
<div style="text-align: center">
<div style="width: 200px;">
<input type="file" size="50" name="File" />
<span id="upload"></span>
<br />
<input type="button" name="button" value="添加文件" onclick="addInput()">
<input type="button" name="button" value="刪除文件" onclick="deleteInput()">
</div>
<div style="margin: 10px 0 10px 0;width: 200px;">
<asp:Button runat="server" Text="上傳" ID="btnUpload" OnClick="btnUpload_Click"></asp:Button><br/>
<asp:Label ID="strStatus" runat="server"></asp:Label>
</div>
</div>
在添加文件和刪除文件里調(diào)用了Javascript,代碼如下:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var attachname = "uploadfile";
var i = 1;
function addInput() {
if (i > 0) {
var attach = attachname + i;
if (createInput(attach))
i = i + 1;
}
}
function deleteInput() {
if (i > 1) {
i = i - 1;
if (!removeInput())
i = i + 1;
}
}
function createInput(nm) {
var aElement = document.createElement("input");
aElement.name = nm;
aElement.id = nm;
aElement.type = "file";
aElement.size = "50";
if (document.getElementById("upload").appendChild(aElement) == null)
return false;
return true;
}
function removeInput(nm) {
var aElement = document.getElementById("upload");
if (aElement.removeChild(aElement.lastChild) == null)
return false;
return true;
}
</script>
后臺(tái)響應(yīng)保存文件的操作,保存文件關(guān)鍵的一句是要讀取到文件列表,
//遍歷File表單元素
HttpFileCollection files = HttpContext.Current.Request.Files;
上傳以后保存文件的代碼如下:
復(fù)制代碼 代碼如下:
protected void btnUpload_Click(object sender, EventArgs e)
{
//遍歷File表單元素
HttpFileCollection files = HttpContext.Current.Request.Files;
System.Text.StringBuilder strMsg = new StringBuilder("<br/>");
strMsg.Append("上傳的文件分別是:</br>");
try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
//檢查文件擴(kuò)展名字
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("上傳文件的擴(kuò)展名:" + fileExtension + "<br/>");
strMsg.Append("上傳文件的大?。? + postedFile.ContentLength + "<br/>");
//可擴(kuò)展功能:
//保存文件時(shí)可以設(shè)置保存目錄
//可以重命名文件保存
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName);
}
}
strStatus.Text = strMsg.ToString();
}
catch (System.Exception Ex)
{
strStatus.Text = Ex.Message;
}
}
完整代碼下載
您可能感興趣的文章:
- ASP.NET Core文件上傳與下載實(shí)例(多種上傳方式)
- 擁有網(wǎng)頁(yè)版小U盤 ASP.NET實(shí)現(xiàn)文件上傳與下載功能
- asp.net+jquery.form實(shí)現(xiàn)圖片異步上傳的方法(附j(luò)query.form.js下載)
- Asp.net實(shí)現(xiàn)MVC處理文件的上傳下載功能實(shí)例教程
- asp.net 上傳或下載當(dāng)文件名包含有特殊字符"#"的處理
- asp.net 上傳下載輸出二進(jìn)制流實(shí)現(xiàn)代碼
- asp.net Web Services上傳和下載文件(完整代碼)
- ASP.NET中文件上傳下載方法集合
- ASP.NET實(shí)現(xiàn)文件上傳功能
- ASP.NET Core實(shí)現(xiàn)文件上傳和下載
相關(guān)文章
ASP.NET中CKEditor與CKFinder的配置使用
這篇文章主要介紹了ASP.NET中CKEditor與CKFinder的配置使用的相關(guān)資料,需要的朋友可以參考下2015-06-06ASP.NET Core 集成 React SPA應(yīng)用的步驟
這篇文章主要介紹了ASP.NET Core 集成 React SPA應(yīng)用的步驟,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04asp.net利用NamingContainer屬性獲取GridView行號(hào)的方法
在最近的一個(gè)項(xiàng)目中,用到在GridView模板列中添加有DropDownList控件,并開啟其AutoPostback屬性。當(dāng)發(fā)生SelectedIndexChanged事件時(shí),想同時(shí)獲取其所在的行號(hào),從而獲取相應(yīng)的行信息。2013-07-07以IP來獲取客戶端電腦名稱(一句代碼實(shí)現(xiàn))
項(xiàng)目要求需要獲取客戶端的電腦名稱,根據(jù)客戶要求實(shí)現(xiàn)以下想法,感興趣的朋友可以參考此文,希望對(duì)你有所幫助2013-01-01ASP.NET Ref和Out關(guān)鍵字區(qū)別分析
類型介紹 在幾乎所有的OOP語言中,都存在2種類型的值。2009-02-02C#中efcore-ShardingCore呈現(xiàn)“完美”分表
本文簡(jiǎn)單的介紹了efcore的分表,著重介紹了efcore下最完美的分表組件ShardingCore,可以幫助大家更好的學(xué)習(xí),感興趣的小伙伴可以參考一下2021-08-08Silverlight中動(dòng)態(tài)獲取Web Service地址
開發(fā)過Silverlight應(yīng)用的朋友們相信都會(huì)遇到這樣一個(gè)問題2009-11-11