源头
作为一个原Java开发者,在之前所开发的项目中,做文件下载我们有一个方法,就是获取User-agent然后去判断这个user-agent的请求头去依次根据浏览器去转换我们返回时的文件名称
文件下载为什么文件名非得依据不同的浏览器去处理?
真理往往掌握在少数人之中,以前写的文件下载那么多的废代码属实是因为对html的不了解导致的
真理来源
这份真理的来源是我使用GO语言做文件下载时文件名乱码,而我疯狂的使用转码而最终还是乱码导致我找到了这份真理之前,属实是不知道还有这种操作
说白了其实很简单, html文件下载时还是设置响应头,
c.Header("Content-Disposition", fmt.Sprintf("attachment; filename*=utf-8''%s", url.QueryEscape(fileName)))
这段最终的响应字符串设置就是将文件名使用url.Encode进行转码即可