<%@ 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);
}
}