帮我用golang写一个判断文件类型的方法
时间: 2024-01-27 08:04:51 浏览: 169
好的,以下是一个使用 Golang 实现的判断文件类型的方法:
```go
import (
"bytes"
"io"
)
func getFileType(file io.Reader) (string, error) {
// 读取文件头部信息
buffer := make([]byte, 512)
_, err := file.Read(buffer)
if err != nil {
return "", err
}
// 判断文件类型
fileType := http.DetectContentType(buffer)
return fileType, nil
}
```
这个方法接收一个实现了 io.Reader 接口的文件对象,读取其头部信息并使用 `http.DetectContentType` 方法判断文件类型。需要注意的是,判断文件类型不是百分之百准确的,因此返回的类型可能会有误。
相关问题
帮我用golang写一个通过文件后缀名判断文件类型的方法
好的,以下是一个使用 Golang 实现的通过文件后缀名判断文件类型的方法:
```go
func getFileTypeBySuffix(fileName string) string {
switch filepath.Ext(fileName) {
case ".jpg", ".jpeg":
return "image/jpeg"
case ".gif":
return "image/gif"
case ".png":
return "image/png"
case ".html", ".htm":
return "text/html"
case ".txt":
return "text/plain"
case ".pdf":
return "application/pdf"
case ".doc", ".docx":
return "application/msword"
case ".xls", ".xlsx":
return "application/vnd.ms-excel"
case ".ppt", ".pptx":
return "application/vnd.ms-powerpoint"
default:
return ""
}
}
```
这个方法接收一个文件名,根据其后缀名返回相应的文件类型。需要注意的是,这种方法并不是百分之百准确的,因为文件后缀名可以被人为地修改。因此,如果需要更加准确地判断文件类型,建议使用前面提到的方法。
帮我用golang写一个通过文件后缀名判断文件是图片还是视频的方法
好的,以下是一个使用 Golang 实现的通过文件后缀名判断文件是图片还是视频的方法:
```go
func getFileTypeBySuffix(fileName string) string {
switch filepath.Ext(fileName) {
case ".jpg", ".jpeg", ".png", ".gif":
return "image"
case ".mp4", ".avi", ".mov":
return "video"
default:
return ""
}
}
```
这个方法接收一个文件名,根据其后缀名返回相应的文件类型,如果是图片则返回 "image",如果是视频则返回 "video",如果既不是图片也不是视频,则返回空字符串。需要注意的是,这种方法也不是百分之百准确的,因为文件后缀名可以被人为地修改。因此,如果需要更加准确地判断文件类型,建议使用前面提到的方法。
阅读全文