ASP.NETファイルをダウンロードにアップロード
19643 ワード
本文は主にAPS.NETのファイルの簡単なアップロードはダウンロードで、アップロードはファイルをサーバーの指定したディレクトリの下にアップロードして、ダウンロードはデータベースに保存した経路から、サーバーからダウンロードします.
1.ファイルのアップロード
(1)ページコード
(2).バックグラウンドコード
2.ファイルのダウンロード
(1)フロントページ
(2)バックグラウンドコード
1).データのバインド
2).ファイルのダウンロード
以上で完了し、簡単なファイルのアップロードとダウンロードができます.
1.ファイルのアップロード
(1)ページコード
<table align="center" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="right"> :</td>
<td>
<asp:TextBox ID="FileName" runat="server"></asp:TextBox>
</td>
<td></td>
</tr>
<tr>
<td align="right"> :</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="UploadButton" runat="server" Text=" "
onclick="UploadButton_Click" /><asp:Label ID="Msg" runat="server" ForeColor="#FF0000"></asp:Label>
</td>
<td></td>
</tr>
</table>
(2).バックグラウンドコード
protected void UploadButton_Click(object sender, EventArgs e)
{
Msg.Text = "";
MyWebSite.DAL.FileInfo file = new MyWebSite.DAL.FileInfo();
if (string.IsNullOrEmpty(FileName.Text))
{
Msg.Text = " ";
return;
}
if (FileUpload1.HasFile)
{
try
{
DateTime upload = DateTime.Now;
string flag = Path.GetExtension(FileUpload1.PostedFile.FileName);
string path = Server.MapPath("../Upload/" + FileUpload1.FileName);
string size = (FileUpload1.PostedFile.ContentLength / 1024).ToString();
FileUpload1.SaveAs(path);
file.FileName = FileName.Text.ToString();
file.Type = flag;//
file.Size = size;//
file.FilePath = path;//
file.UploadTime = DateTime.Now.ToShortDateString();//
handler.AddFile(file);//
Msg.Text = " !";
}
catch
{
Msg.Text = " !";
}
}
}
2.ファイルのダウンロード
(1)フロントページ
<asp:Repeater ID="Repeater1" runat="server" onitemcommand="down_file_Click">
<ItemTemplate>
<table width="90%" align="center" border="1" cellpadding="1" cellspacing="0" bgcolor="#e1e1e1" class="title_font">
<tr>
<td class="title_font" width="10%" align="center"> :</td>
<td width="20%"align="center"><b><asp:Label ID="FileTitle" runat="server" Text='<%#Eval(" ") %>'></asp:Label></b></td>
<td width="6%"align="center"> :</td>
<td width="6%"align="center"><%#Eval(" ") %></td>
<td width="10%" align="center"> :</td>
<td width="8%"align="center"><%#Eval(" ") %>KB</td>
<td width="10%"align="center"> :</td>
<td ><%#Eval(" ") %></td>
<td width="10%" colspan="2" align="center"><asp:LinkButton ID="LinkButton1" CommandArgument='<%#Eval("link") %>' runat="server"> </asp:LinkButton>
</td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:Repeater>
(2)バックグラウンドコード
1).データのバインド
public void GrvDataBin(List<FileInfo> list)
{
DataView dv = new DataView();
DataTable dt = new DataTable("fileMeta");
{
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add("link");
}
foreach (FileInfo fileM in list)
{
DataRow row = dt.NewRow();
row[0] = fileM.FileName;
row[1] = fileM.Type;
row[2] = fileM.UploadTime;
row[3] = fileM.Size;
row[4] = fileM.FilePath;
dt.Rows.Add(row);
}
dv.Table = dt;
Repeater1.DataSource = dv;
Repeater1.DataBind();
}
2).ファイルのダウンロード
protected void down_file_Click(object sender, RepeaterCommandEventArgs e)
{
System.IO.FileStream fs = null;
try
{
string filePath = e.CommandArgument.ToString();
string fileName = ((Label)e.Item.FindControl("FileTitle")).Text.ToString();
fs = System.IO.File.OpenRead(filePath);
byte[] buffer = new byte[1024];
long count = 1024;
Response.Buffer = true;
Response.AddHeader("Connection", "Keep-Alive");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(System.IO.Path.GetFileName(filePath)));//
Response.AddHeader("Content-Length", fs.Length.ToString());
while (count == 1024)
{
count = fs.Read(buffer, 0, 1024);
Response.BinaryWrite(buffer);
}
}
catch (Exception ex)
{
return;
}
finally
{
fs.Close();
}
}
以上で完了し、簡単なファイルのアップロードとダウンロードができます.