美文网首页
golang下载文件

golang下载文件

作者: yuff | 来源:发表于2019-12-19 10:41 被阅读0次

1.http.ServeFile

function Download(c *Gin.Context){

    filename:="test"

    localPath:="d:/test/201912/33/a.pdf"

    c.Writer.Header().Set("Content-Type", "text/pdf")

    c.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s.pdf", filename))

    http.ServeFile(c.Writer, c.Request, localPath)

}

2. ioutil.ReadAll

function Download(c *Gin.Context){
    res, err :=http.Get("http://test.com/a.pdf")

    if err !=nil {

        panic(err)

    }

    content, err := ioutil.ReadAll(res.Body)

    if err != nil {

         panic(err)

    }

    filename :=url.QueryEscape("test.pdf")// 防止中文乱码

    c.Writer.Header().Add("Content-Type", "application/octet-stream")

    c.Writer.Header().Add("Content-Disposition", "attachment; filename=\""+filename+"\"")

    c.Writer.Write(content)

}

3.io.Copy

function Download(c *Gin.Context){

    res, err :=http.Get("http://test.com/a.pdf")

    if err !=nil {

        panic(err)

    }

    filename :=url.QueryEscape("test.pdf")// 防止中文乱码

    c.Writer.Header().Add("Content-Type", "application/octet-stream")

    c.Writer.Header().Add("Content-Disposition", "attachment; filename=\""+filename+"\"")

    io.Copy(c.Writer, res.Body)

}

相关文章

网友评论

      本文标题:golang下载文件

      本文链接:https://www.haomeiwen.com/subject/ubcmnctx.html