1 Aresrun 2021-10-26 09:53:45 +08:00 文件名作为路由参数?如 127.0.0.1:8080/file/:fileName ? |
![]() | 2 libook 2021-10-26 10:19:18 +08:00 按照 HTTP 标准来说的话,请求 URL 是什么,最终下载的文件名就是什么,比如客户端请求的是 data1.txt ,你给他传 data.txt 的内容,用户下载的时候浏览器会根据 URL 默认文件名为 data1.txt 。 除此之外可以配置一个 Content-Disposition 头来让浏览器忽略 URL 中的文件名,使用这个头字段值里包含的信息作为文件名,具体可以去看 MDN 。 框架提供的静态文件 serve 功能如果不支持将 data1.txt 映射成 data.txt 的话,可能就得你自己指定路径读文件内容,然后 respond 给客户端。 |
3 xiao109 2021-10-26 10:40:06 +08:00 用模板嘛。data.txt 是模板,根据不同用户的 name 去填充然后生成真正的文件保存再返回给客户。 |
![]() | 4 IvanLi127 2021-10-26 12:12:15 +08:00 via Android 这不就是模板渲染引擎的工作嘛! |
![]() | 5 cmdOptionKana 2021-10-26 12:21:34 +08:00 简单来说,不存在一个固定的 data.txt ,要么事先准备好一堆不同的 txt ,要么每次请求时才生成一个特定的 txt 。 |
![]() | 6 Trim21 2021-10-26 12:21:50 +08:00 via Android 是用户的浏览器下载这个文件吗?只要设置好对应 header ,浏览器就会选择下载文件而不是直接显示内容了。 然后再把你期望的文件内容作为这个请求的 body 就行了。 |
![]() | 9 ch2 2021-10-26 15:24:34 +08:00 Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt"); 响应体传你定义后的文件内容 |
10 leoleoasd 2021-10-26 15:37:53 +08:00 |
![]() | 11 YYYMagic OP 谢谢大家的意见啦!!! |