Kode program : Download file

Golang Web – Download File

Selain upload file, kadang kita ingin membuat halaman website yang digunakan untuk download sesuatu, sebenarnya digolang sudah di sediakan menggunakan FileServer & ServeFile. Dan jika kita ingin memaksa file di download (tanpa dirender oleh browser, kita bisa menggunakan header Content-Disposition).

Contohnya, buat file baru dengan nama download_file_test.go dan masukkan baris kode berikut

package belajar_golang_web

import (
	"fmt"
	"net/http"
	"testing"
)

func DownloadFile(writer http.ResponseWriter, request *http.Request) {
	file := request.URL.Query().Get("file")

	if file == "" {
		writer.WriteHeader(http.StatusBadRequest)
		fmt.Fprint(writer, "Bad Request")
		return
	}

	writer.Header().Add("Content-Disposition", "attachment; filename=\""+file+"\"")
	http.ServeFile(writer, request, "./resources/"+file)
}

func TestDownloadFile(t *testing.T) {
	server := http.Server{
		Addr:    "localhost:8080",
		Handler: http.HandlerFunc(DownloadFile),
	}

	err := server.ListenAndServe()
	if err != nil {
		panic(err)
	}
}
Kode program : Download file
Kode program : Download file

Penutup

Pada artikel kali ini kita telah belajar tentang download file pada golang web. Dan pada artikel selanjutnya saya akan membahas middleware pada golang web.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook