如果你已經開始寫ASP.NET 的話,你的成就一定超越我了;如果你還沒開始寫,別灰心,我也比你早寫一天而已(而且以後不一定會一直寫)
這個網頁使用者傳給他一個URL 參數,就可以自動讓使用者下載同資料夾裡的檔案(這什麼爛功能Q__Q)
假設網頁名稱叫做:getfile.aspx
在同資料夾裡有檔案叫作: function_wei.doc
使用者在網址列輸入: http://localhost/getfile.aspx?path=function_wei.doc
那支aspx 就會讓使用者下載 function_wei.doc
就這麼簡單Q__Q,這支程式感覺起來很無用,但裡面牽涉兩個重要的aspx 方法:Page_load和 接收URL參數,事不宜遲,我們來看程式碼吧:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
string tmppath = "";
//這裡就是Page_load 囉,當載入網頁就會執行這裡:P
void Page_load(object sender, EventArgs a)
{
if (Request.QueryString["path"] != null)
{
//在呼叫網頁給的參數path 可以用
//Request.QueryString["path"]取得
tmppath = Request.QueryString["path"];
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Part 1</title>
</head>
<body>
<p align="center"><font face="Arial" color="#0000ff" size="5"><strong>The file downloaded.</strong></font></p>
<p align="center">If <i>"<%=tmppath %>"</i> do not auto download, click [<a href="<%=tmppath %>">here</a>]</p>
<iframe style="display:none" src="<%=tmppath%>" />
(其實是很鳥的用一個IFrame 把檔案指定在裡面Q__Q,這裡值得一提的是我們用<%=tmppath %> 就可以輸出C# 的變數,帥吧)
</body>
</html>
我這方面還很弱,請各位高手指正囉 :-)
讀者回應 ( 1 意見 )
訂閱張貼留言 (Atom)
喔...對了
我看到一個將網頁自動導向的方法叫做:
Server.Transfer("目的網址");
這樣網址列不會變,可是網頁內容已經替換
此外,還有一般人家常用的
Response.Redirect("目的網址");
也可以達到重新導向的目的,只是這樣瀏覽器要與伺服器多次交涉,據說會花很多頻寬
張貼留言
如果沒有帳戶,建議使用「名稱/網址」留言喔^^