Detect mimetypes
This commit is contained in:
parent
92af3df4c5
commit
96390291bc
14
fs.go
14
fs.go
@ -3,10 +3,18 @@ package gmi
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
|
"mime"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
// Add Gemini mime types
|
||||||
|
mime.AddExtensionType(".gmi", "text/gemini")
|
||||||
|
mime.AddExtensionType(".gemini", "text/gemini")
|
||||||
|
}
|
||||||
|
|
||||||
// FileServer errors.
|
// FileServer errors.
|
||||||
var (
|
var (
|
||||||
ErrNotAFile = errors.New("gemini: not a file")
|
ErrNotAFile = errors.New("gemini: not a file")
|
||||||
@ -29,8 +37,10 @@ func (fsh fsHandler) Serve(rw *ResponseWriter, req *Request) {
|
|||||||
NotFound(rw, req)
|
NotFound(rw, req)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// TODO: detect mimetype
|
// Detect mimetype
|
||||||
rw.SetMimetype("text/gemini")
|
ext := filepath.Ext(path)
|
||||||
|
mimetype := mime.TypeByExtension(ext)
|
||||||
|
rw.SetMimetype(mimetype)
|
||||||
// Copy file to response writer
|
// Copy file to response writer
|
||||||
io.Copy(rw, f)
|
io.Copy(rw, f)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user