Commit 1f8f1f53 by Li Feifei

fix filename

parent eeaadf32
Pipeline #15675 passed with stages
in 30 seconds
...@@ -21,6 +21,7 @@ type fileService struct { ...@@ -21,6 +21,7 @@ type fileService struct {
// 上传课件 // 上传课件
func (f *fileService) Upload(r *model.FileUploadRequest) { func (f *fileService) Upload(r *model.FileUploadRequest) {
// 解析上传课件URL // 解析上传课件URL
parserURLObject, err := file.Upload(r, f.done, f.ok) parserURLObject, err := file.Upload(r, f.done, f.ok)
if err != nil { if err != nil {
g.Log().Async().Errorf("Parser Url err: %s\n", err) g.Log().Async().Errorf("Parser Url err: %s\n", err)
...@@ -45,7 +46,7 @@ func (f *fileService) Upload(r *model.FileUploadRequest) { ...@@ -45,7 +46,7 @@ func (f *fileService) Upload(r *model.FileUploadRequest) {
case <-f.ok: case <-f.ok:
// 上传成功 // 上传成功
count, err := dao.XyuRoomFile.Where(dao.XyuRoomFile.Columns.RoomId, room.Id). count, err := dao.XyuRoomFile.Where(dao.XyuRoomFile.Columns.RoomId, room.Id).
Where(dao.XyuRoomFile.Columns.Name, r.Name).Count() Where(dao.XyuRoomFile.Columns.Name, parserURLObject.FileName()).Count()
if err != nil { if err != nil {
g.Log().Async().Errorf("Mysql Err: %s\n", err) g.Log().Async().Errorf("Mysql Err: %s\n", err)
return return
......
...@@ -21,7 +21,7 @@ type parser struct { ...@@ -21,7 +21,7 @@ type parser struct {
} }
func parseURL(ossFileLink, name string) (*parser, error) { func parseURL(ossFileLink string) (*parser, error) {
parseURLPath, err := gurl.ParseURL(ossFileLink, 32) parseURLPath, err := gurl.ParseURL(ossFileLink, 32)
...@@ -34,11 +34,11 @@ func parseURL(ossFileLink, name string) (*parser, error) { ...@@ -34,11 +34,11 @@ func parseURL(ossFileLink, name string) (*parser, error) {
return nil, gerror.New("上传URL格式不正确") return nil, gerror.New("上传URL格式不正确")
} }
f := &parser{ f := &parser{
ext: path.Ext(name), ext: path.Ext(ParserFileLink),
url: ossFileLink, url: ossFileLink,
path: parseURLPath["path"], path: parseURLPath["path"],
slicePath: slicePath, slicePath: slicePath,
name: name, name: path.Base(ParserFileLink),
} }
return f, nil return f, nil
...@@ -55,6 +55,11 @@ func (f *parser) splitTempZipLink() string { ...@@ -55,6 +55,11 @@ func (f *parser) splitTempZipLink() string {
return fmt.Sprintf("%s%s.zip", g.Cfg().GetString("temp.path"), f.slicePath[2]) return fmt.Sprintf("%s%s.zip", g.Cfg().GetString("temp.path"), f.slicePath[2])
} }
// 获取文件名称
func (f *parser) filename() string {
return f.name
}
// 上传课件路径 // 上传课件路径
func (f *parser) splitUploadPath() string { func (f *parser) splitUploadPath() string {
return strings.Join(f.slicePath[0:len(f.slicePath)-1], "/") + "/" return strings.Join(f.slicePath[0:len(f.slicePath)-1], "/") + "/"
......
...@@ -49,7 +49,7 @@ var reFileNameCompile, _ = regexp.Compile(`p([\d]+)[.].*`) ...@@ -49,7 +49,7 @@ var reFileNameCompile, _ = regexp.Compile(`p([\d]+)[.].*`)
func Upload(r *model.FileUploadRequest, errChan chan error, func Upload(r *model.FileUploadRequest, errChan chan error,
ok chan bool) (file *ObtainFile, err error) { ok chan bool) (file *ObtainFile, err error) {
f, err := parseURL(r.Url, r.Name) f, err := parseURL(r.Url)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -60,7 +60,7 @@ func Upload(r *model.FileUploadRequest, errChan chan error, ...@@ -60,7 +60,7 @@ func Upload(r *model.FileUploadRequest, errChan chan error,
parser: f, parser: f,
r: r, r: r,
packed: &model.Packed{ packed: &model.Packed{
FileName: f.name, FileName: f.filename(),
Hash: f.contentHash(), Hash: f.contentHash(),
ImagesName: gset.NewSet(), ImagesName: gset.NewSet(),
OssImagesPath: f.splitUploadPath() + "images/", OssImagesPath: f.splitUploadPath() + "images/",
...@@ -217,6 +217,10 @@ func (f *ObtainFile) Worker(err error) { ...@@ -217,6 +217,10 @@ func (f *ObtainFile) Worker(err error) {
f.ok <- true f.ok <- true
} }
func (f *ObtainFile) FileName() string {
return f.parser.filename()
}
// 上传失败通知 // 上传失败通知
func (f *ObtainFile) Fail() { func (f *ObtainFile) Fail() {
if err := f.n.notice("/web/room_files_error", g.Map{ if err := f.n.notice("/web/room_files_error", g.Map{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment