Skip to content

Commit f75157c

Browse files
committed
UploadFile:
1 parent 4ba32de commit f75157c

4 files changed

Lines changed: 35 additions & 6 deletions

File tree

context.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,7 @@ func (ctx *HttpContext) FormFile(key string) (*UploadFile, error) {
152152
if err != nil {
153153
return nil, err
154154
} else {
155-
return &UploadFile{
156-
File: file,
157-
Header: header,
158-
}, nil
155+
return NewUploadFile(file, header), nil
159156
}
160157
}
161158

example/uploadfile/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ func FileUpload(ctx *dotweb.HttpContext) {
4949
ctx.WriteString("SaveFile error => " + err.Error())
5050
return
5151
} else {
52-
ctx.WriteString("SaveFile success || " + upload.FileName() + " || " + fmt.Sprint(upload.Size()))
52+
ctx.WriteString("SaveFile success || " + upload.FileName() + " || " + upload.GetFileExt() + " || " + fmt.Sprint(upload.Size()))
53+
5354
return
5455
}
5556
}

framework/file/file.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,17 @@ func GetCurrentDirectory() string {
1515
}
1616
return strings.Replace(dir, "\\", "/", -1)
1717
}
18+
19+
//get filename extensions
20+
func GetFileExt(fileName string) string {
21+
if fileName == "" {
22+
return ""
23+
} else {
24+
index := strings.LastIndex(fileName, ".")
25+
if index < 0 {
26+
return ""
27+
} else {
28+
return string(fileName[index:])
29+
}
30+
}
31+
}

uploadfile.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package dotweb
22

33
import (
44
"errors"
5+
files "github.com/devfeel/dotweb/framework/file"
56
"io"
67
"mime/multipart"
78
"os"
@@ -10,17 +11,28 @@ import (
1011
type UploadFile struct {
1112
File multipart.File
1213
Header *multipart.FileHeader
14+
fileExt string //file extensions
15+
fileName string
1316
fileSize int64
1417
}
1518

19+
func NewUploadFile(file multipart.File, header *multipart.FileHeader) *UploadFile {
20+
return &UploadFile{
21+
File: file,
22+
Header: header,
23+
fileName: header.Filename,
24+
fileExt: files.GetFileExt(header.Filename),
25+
}
26+
}
27+
1628
// 获取文件大小的接口
1729
type Sizer interface {
1830
Size() int64
1931
}
2032

2133
//get upload file client-local name
2234
func (f *UploadFile) FileName() string {
23-
return f.Header.Filename
35+
return f.fileName
2436
}
2537

2638
//get upload file size
@@ -48,3 +60,8 @@ func (f *UploadFile) SaveFile(fileName string) (size int64, err error) {
4860
size, err = io.Copy(fileWriter, f.File)
4961
return size, err
5062
}
63+
64+
//get upload file extensions
65+
func (f *UploadFile) GetFileExt() string {
66+
return f.fileExt
67+
}

0 commit comments

Comments
 (0)