func setContentType(w http.ResponseWriter, name string, file http.File) { t := mime.TypeByExtension(filepath.Ext(name)) if t == "" { var buffer [512]byte n, _ := io.ReadFull(file, buffer[:]) t = http.DetectContentType(buffer[:n]) if _, err := file.Seek(0, os.SEEK_SET); err != nil { http.Error(w, "Can't seek", http.StatusInternalServerError) return } } w.Header().Set("Content-Type", t) }