当客户端请求”/down”时,可以实现支持下载功能的handlerdown函数的示例代码如下:
func handlerdown(w http.ResponseWriter, r *http.Request) {
// 设置要下载的文件名
filename := "example.txt"
// 读取文件内容
data, err := ioutil.ReadFile(filename)
if err != nil {
http.Error(w, "Unable to read file", http.StatusInternalServerError)
return
}
// 设置响应头,告诉浏览器这是一个文件下载,并指定文件名
w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename))
// 写入文件内容到响应体中
w.Write(data)
}
在上面的示例中,我们首先读取了要下载的文件(这里以”example.txt”为例),然后设置响应头部分来告诉浏览器该文件是一个要下载的附件。最后将文件内容写入响应体。
请注意,在实际应用中你可能需要根据具体需求进行适当修改和处理。例如,如果要支持断点续传或大文件下载,还需要对请求头进行相应解析和处理。
内容由零声教学AI助手提供,问题来源于学员提问