代码拉取完成,页面将自动刷新
package fastdfs_client_go
import (
"errors"
"os"
)
// 文件结构信息(通过文件名上传、或者通过字节上传文件使用)
type fileInfo struct {
filePtr *os.File // 文件指针
fileExtName string // 文件扩展名
fileSize int64 // 文件大小
buffer []byte // 文件字节(文件内容本身)
}
// 通过文件名获取文件信息
func getFileInfoByFileName(fileName string) (*fileInfo, error) {
if fileName != "" {
file, err := os.OpenFile(fileName, os.O_RDONLY, 0755)
if err != nil {
return nil, err
}
stat, err := file.Stat()
if err != nil {
return nil, err
}
if int(stat.Size()) == 0 {
return nil, errors.New(fileName + ERROR_FILE_SIZE_IS_ZERO)
}
return &fileInfo{
fileSize: stat.Size(),
filePtr: file,
buffer: nil,
fileExtName: getFileExtNameStr(fileName),
}, nil
} else {
return nil, errors.New(ERROR_FILE_FILENAME_IS_EMPTY)
}
}
// 通过文件字节获取文件信息
func getFileInfoByFileByte(buffer []byte, fileExtName string) (*fileInfo, error) {
if len(buffer) == 0 {
return nil, errors.New(ERROR_FILE_SIZE_IS_ZERO)
}
if len(fileExtName) == 0 {
return nil, errors.New(ERROR_FILE_EXT_NAME_IS_EMPTY)
}
return &fileInfo{
filePtr: nil,
fileSize: int64(len(buffer)),
buffer: buffer,
fileExtName: fileExtName,
}, nil
}
// 关闭文件
func (c *fileInfo) Close() {
if c.filePtr != nil {
_ = c.filePtr.Close()
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。