共两种方法:
一、使用<a>标签来完成
这样当用户打开浏览器点击链接的时候就会直接下载文件。
但是有个情况,比如txt,png,jpg等这些浏览器支持直接打开的文件是不会执行下载任务的,而是会直接打开文件,这个时候就需要给a标签添加一个属性“download”;
二、使用按钮进行监听
按钮监听又可以分为两种方法:
1、是window.open()
2、是表单提交
html文件
每一个看到的网页都是由HTML文件构成的,网页浏览器读取 HTML 文件,并以网页的形式显示出来。HTML文件是根据HTML/XHTML语法规范编写的一个文本文件,可以使用Dreamweaver、Notepad++、Sublime甚至记事本打开并编辑,其实任何一个文本编辑器都可以打开编辑HTML文档,浏览器打开HTML文件则可以查看HTML文件的显示效果。
HTML超文本标记语言的结构包括头部分(Head)、和主体部分(Body),其中头部(head)提供关于网页的信息,主体(body)部分提供网页的具体内容。它其实是文本,它需要浏览器的解释,每种HTML标记符在使用中可带有不同的属性项,用于描述该标记符说明的内容显示不同的效果。
#region 下载文件/**//// <summary>
/// 从FTP服务器下载文件,使用与远程文件同名的文件名来保存文件
/// </summary>
/// <param name="RemoteFileName">远程文件名</param>
/// <param name="LocalPath">本地路径</param>
public bool DownloadFile(string RemoteFileName, string LocalPath)
{
return DownloadFile(RemoteFileName, LocalPath, RemoteFileName)
}
/**//// <summary>
/// 从FTP服务器下载文件,指定本地路径和本地文件名
/// </summary>
/// <param name="RemoteFileName">远程文件名</param>
/// <param name="LocalPath">本地路径</param>
/// <param name="LocalFilePath">保存文件的本地路径,后面带有"\"</param>
/// <param name="LocalFileName">保存本地的文件名</param>
public bool DownloadFile(string RemoteFileName, string LocalPath, string LocalFileName)
{
byte[] bt = null
try
{
if (!IsValidFileChars(RemoteFileName) || !IsValidFileChars(LocalFileName) || !IsValidPathChars(LocalPath))
{
throw new Exception("非法文件名或目录名!")
}
if (!Directory.Exists(LocalPath))
{
throw new Exception("本地文件路径不存在!")
}
string LocalFullPath = Path.Combine(LocalPath, LocalFileName)
if (File.Exists(LocalFullPath))
{
throw new Exception("当前路径下已经存在同名文件!")
}
bt = DownloadFile(RemoteFileName)
if (bt != null)
{
FileStream stream = new FileStream(LocalFullPath, FileMode.Create)
stream.Write(bt, 0, bt.Length)
stream.Flush()
stream.Close()
return true
}
else
{
return false
}
}
catch (Exception ep)
{
ErrorMsg = ep.ToString()
throw ep
}
}
/**//// <summary>
/// 从FTP服务器下载文件,返回文件二进制数据
/// </summary>
/// <param name="RemoteFileName">远程文件名</param>
public byte[] DownloadFile(string RemoteFileName)
{
try
{
if (!IsValidFileChars(RemoteFileName))
{
throw new Exception("非法文件名或目录名!")
}
Response = Open(new Uri(this.Uri.ToString() + RemoteFileName), WebRequestMethods.Ftp.DownloadFile)
Stream Reader = Response.GetResponseStream()
MemoryStream mem = new MemoryStream(1024 * 500)
byte[] buffer = new byte[1024]
int bytesRead = 0
int TotalByteRead = 0
while (true)
{
bytesRead = Reader.Read(buffer, 0, buffer.Length)
TotalByteRead += bytesRead
if (bytesRead == 0)
break
mem.Write(buffer, 0, bytesRead)
}
if (mem.Length >0)
{
return mem.ToArray()
}
else
{
return null
}
}
catch (Exception ep)
{
ErrorMsg = ep.ToString()
throw ep
}
}
#endregion
1、在a标签中指定href='文件路径',download='文件名';这样直接点a标签就能下载文件了。2、给按钮绑定个click事件,在事件里使用window.location.href='文件路径',或者window. open("文件路径")
3、如果需要从后台查询文件,也可以直接后台返回流也行的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)