html怎么实现网页中文件下载功能?

html怎么实现网页中文件下载功能?,第1张

共两种方法:

一、使用<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、如果需要从后台查询文件,也可以直接后台返回流也行的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11786477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存