Преглед на файлове

get file mime type done

master
Patrick Peng Sun преди 8 години
родител
ревизия
62f6f9f15b
променени са 2 файла, в които са добавени 29 реда и са изтрити 2 реда
  1. +16
    -2
      fileinfo.go
  2. +13
    -0
      fileinfo_test.go

+ 16
- 2
fileinfo.go Целия файл

@@ -1,7 +1,10 @@
package main

import (
"log"
"os"

"github.com/rakyll/magicmime"
)

func getFileSize(s string) (size int64, err error) {
@@ -19,6 +22,17 @@ func getFileSize(s string) (size int64, err error) {
return
}

func getFileMime(s string) (mime string) {
return ""
func getFileMime(s string) (mimetype string, err error) {
if err := magicmime.Open(magicmime.MAGIC_MIME_TYPE | magicmime.MAGIC_SYMLINK | magicmime.MAGIC_ERROR); err != nil {
log.Fatal(err)
return "", err
}
defer magicmime.Close()

mimetype, err = magicmime.TypeByFile(s)
if err != nil {
log.Fatalf("error occured during type lookup: %v", err)
}
//log.Printf("mime-type: %v", mimetype)
return
}

+ 13
- 0
fileinfo_test.go Целия файл

@@ -18,3 +18,16 @@ func TestGetFileSize(t *testing.T) {
AssertEqual(t, size, int64(v), msg)
}
}

func TestGetMimeType(t *testing.T) {
var fileMime = map[string]string{
"media_for_test/640x480.jpg": "image/jpeg",
"media_for_test/3640x3480.jpg": "image/jpeg",
"media_for_test/video.mp4": "video/mp4",
}
for k, v := range fileMime {
mime, _ := getFileMime(k)
msg := fmt.Sprintf("%s should be %s, not %s", k, v, mime)
AssertEqual(t, mime, v, msg)
}
}

Loading…
Отказ
Запис