Serve File

Kegunaan file server adalah untuk menampilkan suatu file yang ada dalam satu direktori yang sama dengan aplikasi.

Contoh code penggunaan file server

package main

import (
	"fmt"
	"net/http"
)

func main() {
	mux := http.NewServeMux()
	// menampilkan file berdasarkan direktori (index.html yang utama)
	fs1 := http.FileServer(http.Dir("files/html"))
	fs2 := http.FileServer(http.Dir("files/html2"))
	fs3 := http.FileServer(http.Dir("files/txt"))

	mux.Handle("/", fs1)
	// jika didepan / ada tambahan kata, harus dihapus dengan http.StripPrefix
	mux.Handle("/html", http.StripPrefix("/html", fs2))
	mux.Handle("/txt", http.StripPrefix("/txt", fs3))

	server := http.Server{
		Addr:    "localhost:5000",
		Handler: mux,
	}

	fmt.Println("Server running on", server.Addr)
	err := server.ListenAndServe()
	if err != nil {
		panic(err)
	}
}

Contoh code penggunaan serve file

package main

import (
	"fmt"
	"net/http"
)

func main() {
	mux := http.NewServeMux()

	mux.HandleFunc("/html1", func(w http.ResponseWriter, r *http.Request) {
		http.ServeFile(w, r, "./files/index.html")
	})
	mux.HandleFunc("/html2", func(w http.ResponseWriter, r *http.Request) {
		http.ServeFile(w, r, "./files/html/index.html")
		http.ServeFile(w, r, "./files/html/test2.html") // tidak akan ditampilkan
	})
	mux.HandleFunc("/txt", func(w http.ResponseWriter, r *http.Request) {
		http.ServeFile(w, r, "./files/txt/test.txt")
	})
	mux.HandleFunc("/jpg", func(w http.ResponseWriter, r *http.Request) {
		http.ServeFile(w, r, "./files/jpg/cat.jpg")
	})
	mux.HandleFunc("/json", func(w http.ResponseWriter, r *http.Request) {
		http.ServeFile(w, r, "./files/json/test.json")
	})

	server := http.Server{
		Addr:    "localhost:5000",
		Handler: mux,
	}

	fmt.Println("Server running on", server.Addr)
	err := server.ListenAndServe()
	if err != nil {
		panic(err)
	}
}

Struktur file dalam direktori ./file, ./file/html dan ./file/txt.

Last updated