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

現(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>
后臺響應保存文件的操作,保存文件關鍵的一句是要讀取到文件列表,
//遍歷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++)
{
//檢查文件擴展名字
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("上傳文件的擴展名:" + fileExtension + "<br/>");
strMsg.Append("上傳文件的大?。? + postedFile.ContentLength + "<br/>");
//可擴展功能:
//保存文件時可以設置保存目錄
//可以重命名文件保存
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里的代碼:
復制代碼 代碼如下:
<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>
后臺響應保存文件的操作,保存文件關鍵的一句是要讀取到文件列表,
//遍歷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++)
{
//檢查文件擴展名字
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("上傳文件的擴展名:" + fileExtension + "<br/>");
strMsg.Append("上傳文件的大?。? + postedFile.ContentLength + "<br/>");
//可擴展功能:
//保存文件時可以設置保存目錄
//可以重命名文件保存
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文件上傳與下載實例(多種上傳方式)
- 擁有網(wǎng)頁版小U盤 ASP.NET實現(xiàn)文件上傳與下載功能
- asp.net+jquery.form實現(xiàn)圖片異步上傳的方法(附jquery.form.js下載)
- Asp.net實現(xiàn)MVC處理文件的上傳下載功能實例教程
- asp.net 上傳或下載當文件名包含有特殊字符"#"的處理
- asp.net 上傳下載輸出二進制流實現(xiàn)代碼
- asp.net Web Services上傳和下載文件(完整代碼)
- ASP.NET中文件上傳下載方法集合
- ASP.NET實現(xiàn)文件上傳功能
- ASP.NET Core實現(xiàn)文件上傳和下載
相關文章
ASP.NET中CKEditor與CKFinder的配置使用
這篇文章主要介紹了ASP.NET中CKEditor與CKFinder的配置使用的相關資料,需要的朋友可以參考下2015-06-06
ASP.NET Core 集成 React SPA應用的步驟
這篇文章主要介紹了ASP.NET Core 集成 React SPA應用的步驟,幫助大家更好的理解和學習使用.net技術,感興趣的朋友可以了解下2021-04-04
asp.net利用NamingContainer屬性獲取GridView行號的方法
在最近的一個項目中,用到在GridView模板列中添加有DropDownList控件,并開啟其AutoPostback屬性。當發(fā)生SelectedIndexChanged事件時,想同時獲取其所在的行號,從而獲取相應的行信息。2013-07-07
C#中efcore-ShardingCore呈現(xiàn)“完美”分表
本文簡單的介紹了efcore的分表,著重介紹了efcore下最完美的分表組件ShardingCore,可以幫助大家更好的學習,感興趣的小伙伴可以參考一下2021-08-08
Silverlight中動態(tài)獲取Web Service地址
開發(fā)過Silverlight應用的朋友們相信都會遇到這樣一個問題2009-11-11

