golang Golang +杜松子酒でファイルをダウンロードさせる

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang Golang +杜松子酒でファイルをダウンロードさせる相关的知识,希望对你有一定的参考价值。

// ファイルをダウンロードさせる
func forceDownloadFile(c *gin.Context, fileName string) {
	targetPath := filepath.Join(downloadsPath, fileName)
	if !strings.HasPrefix(filepath.Clean(targetPath), downloadsPath) {
		c.String(403, "Look like you attacking me")
		return
	}
	c.Header("Content-Description", "File Transfer")
	c.Header("Content-Transfer-Encoding", "binary")
	c.Header("Content-Disposition", "attachment; filename="+fileName)
	c.Header("Content-Type", "application/octet-stream")
	c.File(targetPath)
}

html html / templateで布局ファイルと内容ファイルを分けたい场合

package main

import (
	"html/template"
	"log"
	"net/http"
)

func main() {
	http.HandleFunc("/", handler)
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func handler(w http.ResponseWriter, r *http.Request) {
	data := map[string]string{
		"Name": "Mike",
	}

	tmpl := template.Must(template.ParseFiles("layout.html", "content.html"))
	w.Header().Set("Content-Type", "text/html")

	err := tmpl.Execute(w, data)
	if err != nil {
		panic(err)
	}
}
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    {{ template "content" . }}
  </body>
</html>
{{ define "content" }}
<p>Hello {{ .Name }}</p>
{{ end }}

以上是关于golang Golang +杜松子酒でファイルをダウンロードさせる的主要内容,如果未能解决你的问题,请参考以下文章

golang 空のダミーファイルを生成するスクリプト(powershell,python,go)

golang ファイル名に含まれる数字を0埋めしてリームするスクリプト(powershell,python,go)

markdown MySQL的CSVでファイルをインポートする

sql 急でファイル名を取る

vbscript 复数のExcel的ファイルを1ファイルにまとめる的VBScript

markdown ファイルを指すURLに个别のファイルのエイリアスを作る