前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 id="Head1" runat="server">
<title>無標題頁</title>
<script>
function checkType(){
//得到上傳檔案的值
var fileName=document.getElementById("FileUpLoad1").value;
//返回String對象中子字串最後出現的位置.
var seat=fileName.lastIndexOf(".");
//返回位於String對象中指定位置的子字串並轉換為小寫.
var extension=fileName.substring(seat).toLowerCase();
//判斷允許上傳的檔案格式
//if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){
//alert("不支援"+extension+"檔案的上傳!");
//return false;
//}else{
//return true;
//}
var allowed=[".jpg",".gif",".png",".bmp",".jpeg",".xls"];
for(var i=0;i<allowed.length;i++){
if(!(allowed[i]!=extension)){
return true;
}
}
alert("不支援"+extension+"格式");
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpLoad1" runat="server" />
<br />
<asp:Button ID="btnFileUpload" runat="server"
OnClick="btnFileUpload_Click" Text="檔案上傳"
OnClientClick="return checkType()" />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
--------------------------------------
protected void btnFileUpload_Click(object sender, EventArgs e)
{
if (FileUpLoad1.HasFile)
{
//判斷檔案是否小於10Mb
if (FileUpLoad1.PostedFile.ContentLength < 10485760)
{
try
{
//上傳檔案並指定上傳目錄的路徑
// FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")
// + FileUpLoad1.FileName);
/*注意->這裡為什麼不是:FileUpLoad1.PostedFile.FileName
* 而是:FileUpLoad1.FileName?
* 前者是獲得用戶端完整限定(用戶端完整路徑)名稱
* 後者FileUpLoad1.FileName只獲得檔案名稱.
*/
//當然上傳語句也可以這樣寫(貌似廢話):
FileUpLoad1.SaveAs(@"D:/"+FileUpLoad1.FileName);
lblMessage.Text = "上傳成功!";
}
catch (Exception ex)
{
lblMessage.Text = "出現異常,無法上傳!";
//lblMessage.Text += ex.Message;
}
}
else
{
lblMessage.Text = "上傳檔案不能大於10MB!";
}
}
else
{
lblMessage.Text = "尚未選擇檔案!";
}
}
}