f, err := os.OpenFile(src, os.O_RDONLY, os.ModePerm)
if err != nil {
appG.Response_m(11111, "文件不存在", err)
return
}
defer f.Close()
buf := bufio.NewReader(f)
type_b, _ := buf.Peek(512)
c.Writer.Header().Set("Content-type", http.DetectContentType(type_b))//设置文件格式
fileinfo, _ := f.Stat()
//"application/octet-stream"
c.Writer.Header().Set("Content-Length", strconv.FormatInt(fileinfo.Size(), 10))
if ok, _ := strconv.ParseBool(show); ok {
c.Writer.Header().Add("Content-Disposition", "attachment; filename="+filename)//下载文件名,不设置网页直接打开PDF.jpg.png 等格式
}
buf_b := make([]byte, 1024*1024) //发送大小
for {
n, err := buf.Read(buf_b)
if err == io.EOF || n == 0 {
break
}
c.Writer.Write(buf_b[:n])
}
fmt.Println(filename, "结束")