88 lines
1.5 KiB
Go
88 lines
1.5 KiB
Go
|
package fsctx
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type WriteMode int
|
||
|
|
||
|
const (
|
||
|
Overwrite WriteMode = iota
|
||
|
Append
|
||
|
Create
|
||
|
)
|
||
|
|
||
|
// FileStream 用户传来的文件
|
||
|
type FileStream struct {
|
||
|
Mode WriteMode
|
||
|
Hidden bool
|
||
|
LastModified time.Time
|
||
|
Metadata map[string]string
|
||
|
File io.ReadCloser
|
||
|
Size uint64
|
||
|
VirtualPath string
|
||
|
Name string
|
||
|
MIMEType string
|
||
|
SavePath string
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) Read(p []byte) (n int, err error) {
|
||
|
return file.File.Read(p)
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetMIMEType() string {
|
||
|
return file.MIMEType
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetSize() uint64 {
|
||
|
return file.Size
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) Close() error {
|
||
|
return file.File.Close()
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetFileName() string {
|
||
|
return file.Name
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetVirtualPath() string {
|
||
|
return file.VirtualPath
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetMode() WriteMode {
|
||
|
return file.Mode
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetMetadata() map[string]string {
|
||
|
return file.Metadata
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetLastModified() time.Time {
|
||
|
return file.LastModified
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) IsHidden() bool {
|
||
|
return file.Hidden
|
||
|
}
|
||
|
|
||
|
func (file *FileStream) GetSavePath() string {
|
||
|
return file.SavePath
|
||
|
}
|
||
|
|
||
|
// FileHeader 上传来的文件数据处理器
|
||
|
type FileHeader interface {
|
||
|
io.Reader
|
||
|
io.Closer
|
||
|
GetSize() uint64
|
||
|
GetMIMEType() string
|
||
|
GetFileName() string
|
||
|
GetVirtualPath() string
|
||
|
GetMode() WriteMode
|
||
|
GetMetadata() map[string]string
|
||
|
GetLastModified() time.Time
|
||
|
IsHidden() bool
|
||
|
GetSavePath() string
|
||
|
}
|