Download File
Selain upload file, kita juga perlu atau membutuhkan halaman yang bisa melakukan download file atau sesuatu yang ada pada website kita. Pada library Golang sudah disediakan yaitu FileServer
dan ServeFile
. Jika kita ingin memaksa file di download tanpa harus di render oleh browser maka kita bisa menggunakan header Content-Disposition
. Lebih lengkapnya bisa dilihat di halaman ini https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition.
Cara Implementasi pada Golang
Langsung saja kita lanjutkan dengan cara membuat halaman download dengan membuat fungsi handler seperti dibawah ini.
func DownloadFileHandler(w http.ResponseWriter, r *http.Request) {
fileName := r.URL.Query().Get("file")
if fileName == "" {
w.WriteHeader(http.StatusBadRequest)
fmt.Fprint(w, "Bad Request")
}
w.Header().Add("Content-Disposition", "attachment;filename=\""+fileName+"\"")
http.ServeFile(w, r, "./resources/"+fileName)
}
Tambahkan fungsi diatas pada router mux
pada file main.go
seperti dibawah ini.
mux.HandleFunc("/download", DownloadFileHandler)
Jalankan dan buka browser coba akses halaman dibawah ini.
http://localhost:8080/download?file=tutorial-golang.webp
Maka akan langsung download file yang dituju pada folder resources
sesuai dengan file yang dikirim pada parameter.
17 Upload File
19 HTTP Middleware
Artikel Terhangat
59 Skema dan Resolver Subscription
08 Aug 2025
81. Unit Test untuk Handler gRPC
08 Aug 2025
79. gRPC Logging Terstruktur dengan Zap
08 Aug 2025
56 Apa Itu Subscription di GraphQL?
08 Aug 2025
78. Men-deploy gRPC Service di Docker
08 Aug 2025

59 Skema dan Resolver Subscription

81. Unit Test untuk Handler gRPC

79. gRPC Logging Terstruktur dengan Zap

56 Apa Itu Subscription di GraphQL?
