如何使使用者能下載伺服器中的檔案
阿新 • • 發佈:2019-01-03
本功能主要是利用HttpResponse類中的公共方法來實現的。
原始碼如下:
web頁面檔案(*.aspx)原始碼如下:
<body>
<form id="form1" runat="server">
<table width="90%" align="center" border="0">
<tr>
<td align="center" style="height: 156px">
<asp:ListBox ID="ListBox1" Runat="server" Rows="6" Width="371px" Height="144px" />
</td>
</tr>
<tr>
<td align="center">
<br />
<input id="Button1" runat="server"
type="button"
value="下載選擇的檔案"
style="width: 372px" onserverclick="Button1_ServerClick" />
</td>
</tr>
</table>
</form>
</body>
web頁面檔案配置原始碼(*.aspx.cs)如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//獲取下載資料夾的所有影象檔案
String[] MyFiles = Directory.GetFiles(Server.MapPath("Images"));
//顯示不帶路徑的影象檔名
for (int index = 0; index < MyFiles.Length; index++)
{
MyFiles[index] = new FileInfo(MyFiles[index]).Name;
}
//設定列表控制元件資料來源
ListBox1.DataSource = MyFiles;
ListBox1.DataBind();
ListBox1.SelectedIndex = 0;
}
}
protected void Button1_ServerClick(object sender, EventArgs e)
{//下載選擇的檔案
FileInfo MyFileInfo;
String MyFileName= Server.MapPath("Images") + "//" +
this.ListBox1.SelectedItem.Text;
MyFileInfo = new FileInfo(MyFileName);
Response.Clear();
Response.AddHeader("Content-Disposition",
"attachment; filename=" + this.ListBox1.SelectedItem.Text);
Response.AddHeader("Content-Length",MyFileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(MyFileName);
Response.End();
}
}
原始碼如下:
web頁面檔案(*.aspx)原始碼如下:
<body>
<form id="form1" runat="server">
<table width="90%" align="center" border="0">
<tr>
<td align="center" style="height: 156px">
<asp:ListBox ID="ListBox1" Runat="server" Rows="6" Width="371px" Height="144px" />
</td>
</tr>
<tr>
<td align="center">
<br />
<input id="Button1" runat="server"
type="button"
value="下載選擇的檔案"
style="width: 372px" onserverclick="Button1_ServerClick" />
</td>
</tr>
</table>
</form>
</body>
web頁面檔案配置原始碼(*.aspx.cs)如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//獲取下載資料夾的所有影象檔案
String[] MyFiles = Directory.GetFiles(Server.MapPath("Images"));
//顯示不帶路徑的影象檔名
for (int index = 0; index < MyFiles.Length; index++)
{
MyFiles[index] = new FileInfo(MyFiles[index]).Name;
}
//設定列表控制元件資料來源
ListBox1.DataSource = MyFiles;
ListBox1.DataBind();
ListBox1.SelectedIndex = 0;
}
}
protected void Button1_ServerClick(object sender, EventArgs e)
{//下載選擇的檔案
FileInfo MyFileInfo;
String MyFileName= Server.MapPath("Images") + "//" +
this.ListBox1.SelectedItem.Text;
MyFileInfo = new FileInfo(MyFileName);
Response.Clear();
Response.AddHeader("Content-Disposition",
"attachment; filename=" + this.ListBox1.SelectedItem.Text);
Response.AddHeader("Content-Length",MyFileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(MyFileName);
Response.End();
}
}