各位大侠:
我特别想知道asp.net(C#版)如何实现文件的上传和下载功能?做毕业设计要用,只学过上传。不过我们的上传是这样的:解决方案根目录下建立一个文件夹,然后运行网页后,点击上传,将文件上传到此文件夹里。但是我不知道怎么从这个文件夹里下载啊。
我特别想知道asp.net(C#版)如何实现文件的上传和下载功能?做毕业设计要用,只学过上传。不过我们的上传是这样的:解决方案根目录下建立一个文件夹,然后运行网页后,点击上传,将文件上传到此文件夹里。但是我不知道怎么从这个文件夹里下载啊。
protected void Button1_Click(object sender, EventArgs e)
{
if(FileUpload1.HasFile)
{
string fileext = System.IO.Path.GetExtension(FileUpload1.FileName); if (fileext.Equals(".doc"))
{
this.FileUpload1.SaveAs(Server.MapPath("upload") + "/" + this.FileUpload1.FileName);
this.Label1.Text = "上传文件成功:/文件大小为:" + FileUpload1.PostedFile.ContentLength;
}
else
{
this.Label1.Text = "文件类型不对!只能上doc文件!";
}
} }
<%
Response.Buffer=true
取得要下载的文件,如果不为空。就下载
dim url,trueurl
url="下载文件路径和下载文件名"
fname=Request("filename")
if fname<>"" then
trueurlurl=server.MapPath("/") &url
end if
set objFso=server.CreateObject("scripting.filesystemobject")
set fn=objFso.GetFile(trueurl)
flsize=fn.size
flname=fn.name
set fn=nothing
set objFso=nothing
set objStream=server.CreateObject("adodb.stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFile url
select case lcase(right(flname,4))
case ".asf"
ContentType="video/x-ms-asf"
case ".avi"
ContentType="video/avi"
case ".doc"
ContentType="application/msword"
case ".zip"
ContentType="application/zip"
case ".xls"
ContentType="application/vnd.ms-excel"
case ".gif"
ContentType="image/gif"
case ".jpg","jpeg"
ContentType="image/jpeg"
case ".wav"
ContentType="audio/wav"
case ".mp3"
ContentType="audio/mpeg3"
case ".mpg", "mpeg"
ContentType="video/mpeg"
case ".rtf"
ContentType="application/rtf"
case ".htm","html"
ContentType="text/html"
case ".txt"
ContentType="text/plain"
Case ".ASP", ".ASA", "ASPX", "ASAX", ".MDB"
Response.Write "受保护文件,不能下载."
Response.End
case else
ContentType="appliation/octet-stream"
end select Response.AddHeader "Content-Disposition", "attachment; filename="&flname
Response.AddHeader "Content-Length", flsize
Response.CharSet="UTF-8"
Response.ContentType=ContentType
Response.BinaryWrite objStream.Read
Response.Flush
Response.Clear()
objStream.Close
set objStream=nothing
%>
if(FileUpload1.HasFile)
{
string path = Server.MapPath("~/upload/")
FileUpload1.SaveAs(path + this.FileUpload1.FileName);
}
string path = Server.MapPath("~/") + "";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.GetEncoding("utf-8")));
Response.ContentType = "application/octet-stream";
Response.WriteFile("" + path + "");
Response.End();