一个多文件上传的例子





<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>


<!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>
    <style type="text/css">
.myspan { BACKGROUND-COLOR: blue; HEIGHT: 20px; COLOR: #fff; CURSOR: pointer; boder: solid 1px ccc }
</style>


    <script language="javascript">
var tempID=1;
function AddFile(obj)
{
if(tempID>4)
{
alert("最多只能同時上傳5個文件")
return;
}
var filenfo = document.getElementById("FilesInfo");
var odiv = document.createElement("div");
odiv.id = "div_"+tempID;
odiv.innerHTML  +="<input type ='file' name ='File' id='File_"+tempID+"' size='55'><span title='取消' οnclick='removeFile("+tempID+")' class='myspan'>取消</span>";
filenfo.appendChild(odiv);
tempID++;
}
function removeFile(removeID)
{

var FileInfo = document.getElementById("FilesInfo");
var tempFiles = document.getElementById("div_"+removeID);
if(tempFiles)
{
FileInfo.removeChild(tempFiles)
tempID = tempID-1;
}
}
function StartUpFile()
{
if(document.getElementById("File0").value == "")
{
document.getElementById("lblMessage").innerHTML= "請選擇上傳文件";
event.returnValue = false;
return;
}
document.getElementById("lblMessage").innerHTML = " 正在上傳,請稍候...";
}


    </script>


</head>
<body>
    <form id="form1" runat="server" enctype="multipart/form-data">
        <div id="Add">
            <b>上傳文件</b>
            <div id="baseFile">
                <input id="File0" type="file" name="Files0" size="55"></div>
            <div id="FilesInfo">
            </div>
            <div>
                <asp:Button ID="btnUpFile" runat="server" Text="開始上傳" OnClientClick="StartUpFile()" OnClick="btnUpFile_Click">
                </asp:Button>
                <input οnclick="AddFile()" type="button" value="添加文件" style="width: 79px; height: 24px">
            </div>
            <asp:Label ID="lblMessage" runat="server" ForeColor="#ff0066"></asp:Label></div>
    </form>
</body>
</html>
[code=C#]
protected void btnUpFile_Click(object sender, EventArgs e)
    {
        HttpFileCollection files = Request.Files;
        HttpPostedFile postFile;
        for (int i = 0; i < files.Count; i++)
        {
            postFile = files[i];
            if (postFile.ContentLength == 0) continue;
            UpLoadFile(postFile, Server.MapPath("~/") + Path.GetFileName(postFile.FileName));
        }
        Response.Write("上傳成功");


    }
    public void UpLoadFile(System.Web.HttpPostedFile postFile, string savePath)
    {
        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(savePath)))
                Directory.CreateDirectory(Path.GetDirectoryName(savePath));
            using (FileStream fs = new FileStream(savePath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
            {
                using (BinaryReader reader = new BinaryReader(postFile.InputStream))
                {
                    int bufferLength = 0;
                    int readLength = 10240;
                    byte[] buffer = new byte[10240];
                    while (true)
                    {
                        bufferLength = reader.Read(buffer, 0, readLength);
                        if (bufferLength == 0) break;
                        fs.Write(buffer, 0, bufferLength);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Source + ex.Message);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值