如何从Go服务器在浏览器中下载文件

leiyonglin

我的代码从远程URL获取文件并在浏览器中下载文件:

func Index(w http.ResponseWriter, r *http.Request) {
    url := "http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png"

    ...

    resp, err := client.Get(url)
    if err != nil {
        fmt.Println(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(len(body))
    //download the file in browser

}

func main() {
    http.HandleFunc("/", Index)
    err := http.ListenAndServe(":8000", nil)

    if err != nil {
        fmt.Println(err)
    }
}

代码:http//play.golang.org/p/x-EyR2zFjv

可以获取文件,但是如何在浏览器中下载文件?

Not_a_Golfer

要使浏览器打开下载对话框,请在响应中添加Content-DispositionContent-Type标头:

w.Header().Set("Content-Disposition", "attachment; filename=WHATEVER_YOU_WANT")
w.Header().Set("Content-Type", r.Header.Get("Content-Type"))

在将内容发送到客户端之前,请执行此操作。您可能还希望将Content-Length响应标头复制到客户端,以显示适当的进度。

要将响应主体流传输到客户端而不将其完全加载到内存中(对于大文件,这很重要)-只需将主体读取器复制到响应写入器即可:

io.Copy(w, resp.Body)

io.Copy是一个不错的小功能,具有读取器接口和写入器接口,可从一个接口读取数据并将其写入另一个接口。这种东西非常有用!

我已修改您的代码以执行此操作:http : //play.golang.org/p/v9IAu2Xu3_

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在浏览器中下载文件

来自分类Dev

如何在浏览器的FTP服务器上下载文件?

来自分类Dev

从golang服务器在浏览器中下载压缩文件

来自分类Dev

如何阻止 Express.js 导致在浏览器中下载文件?

来自分类Dev

浏览器如何下载文件(通过HTTP或FTP)

来自分类Dev

是否可以使用angularjs强制在浏览器中下载文件?

来自分类Dev

在Android设备上的Google Chrome浏览器中从Node.js服务器下载文件的错误

来自分类Dev

在Android设备上的Google Chrome浏览器上从Node.js服务器下载文件的错误

来自分类Dev

如何从javascript的服务器响应中下载XLSX文件?

来自分类Dev

当文件位于其他服务器上时,使用ASP.Net MVC在浏览器中强制下载文件,而无需先在我的服务器上下载文件

来自分类常见问题

在React中如何从服务器下载文件?

来自分类Dev

如何从服务器下载文件(sso和https)

来自分类Dev

如何从服务器或本地Xampp下载文件?的PHP

来自分类Dev

在React中如何从服务器下载文件?

来自分类Dev

如何通过javascript从tomcat服务器下载文件?

来自分类Dev

如何在Windows服务器上下载文件?

来自分类Dev

如何通过SSH服务器下载文件?

来自分类Dev

从服务器以html下载文件

来自分类Dev

我该如何解决这个问题,在浏览器中下载文件时,它会更改文件中的编码,我使用的是 Spring Boot

来自分类Dev

在浏览器中下载多个文件/文档

来自分类Dev

如何从服务器下载文本?

来自分类Dev

在Chrome浏览器中下载文件时,我的容器会向上移动到标题中。不确定如何修复

来自分类Dev

在浏览器中打开文件,而不是下载文件

来自分类Dev

通过Rest Web服务从服务器上的浏览器文件存储下载

来自分类Dev

几乎所有浏览器都取消了 FTP 支持后,只需单击 FTP URL 即可从 FTP 服务器下载文件?

来自分类Dev

Perl如何将zip文件发送到浏览器以在PSGI中下载

来自分类Dev

在浏览器中下载异步文档

来自分类Dev

浏览器缓存可下载文件

来自分类Dev

下载文件,但似乎必须使用浏览器

Related 相关文章

  1. 1

    在浏览器中下载文件

  2. 2

    如何在浏览器的FTP服务器上下载文件?

  3. 3

    从golang服务器在浏览器中下载压缩文件

  4. 4

    如何阻止 Express.js 导致在浏览器中下载文件?

  5. 5

    浏览器如何下载文件(通过HTTP或FTP)

  6. 6

    是否可以使用angularjs强制在浏览器中下载文件?

  7. 7

    在Android设备上的Google Chrome浏览器中从Node.js服务器下载文件的错误

  8. 8

    在Android设备上的Google Chrome浏览器上从Node.js服务器下载文件的错误

  9. 9

    如何从javascript的服务器响应中下载XLSX文件?

  10. 10

    当文件位于其他服务器上时,使用ASP.Net MVC在浏览器中强制下载文件,而无需先在我的服务器上下载文件

  11. 11

    在React中如何从服务器下载文件?

  12. 12

    如何从服务器下载文件(sso和https)

  13. 13

    如何从服务器或本地Xampp下载文件?的PHP

  14. 14

    在React中如何从服务器下载文件?

  15. 15

    如何通过javascript从tomcat服务器下载文件?

  16. 16

    如何在Windows服务器上下载文件?

  17. 17

    如何通过SSH服务器下载文件?

  18. 18

    从服务器以html下载文件

  19. 19

    我该如何解决这个问题,在浏览器中下载文件时,它会更改文件中的编码,我使用的是 Spring Boot

  20. 20

    在浏览器中下载多个文件/文档

  21. 21

    如何从服务器下载文本?

  22. 22

    在Chrome浏览器中下载文件时,我的容器会向上移动到标题中。不确定如何修复

  23. 23

    在浏览器中打开文件,而不是下载文件

  24. 24

    通过Rest Web服务从服务器上的浏览器文件存储下载

  25. 25

    几乎所有浏览器都取消了 FTP 支持后,只需单击 FTP URL 即可从 FTP 服务器下载文件?

  26. 26

    Perl如何将zip文件发送到浏览器以在PSGI中下载

  27. 27

    在浏览器中下载异步文档

  28. 28

    浏览器缓存可下载文件

  29. 29

    下载文件,但似乎必须使用浏览器

热门标签

归档