gin 发送大文件
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, "结束")