Skip to content

Commit d93011b

Browse files
committed
[Update] return more err msg
1 parent 9004716 commit d93011b

File tree

1 file changed

+29
-20
lines changed

1 file changed

+29
-20
lines changed

elfinder.go

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -220,13 +220,13 @@ func (elf *ElFinderConnector) mkDir() {
220220
v := elf.getVolume(IDAndTarget[0])
221221
path, err := elf.parseTarget(strings.Join(IDAndTarget[1:], "_"))
222222
if err != nil {
223-
elf.res.Error = []string{errMkdir, elf.req.Name}
223+
elf.res.Error = []string{errMkdir, elf.req.Name, err.Error()}
224224
return
225225
}
226226
if elf.req.Name != "" {
227227
fileDir, err := v.MakeDir(path, elf.req.Name)
228228
if err != nil {
229-
elf.res.Error = []string{errMkdir, elf.req.Name}
229+
elf.res.Error = []string{errMkdir, elf.req.Name, err.Error()}
230230
return
231231
}
232232
added = append(added, fileDir)
@@ -235,7 +235,7 @@ func (elf *ElFinderConnector) mkDir() {
235235
for _, name := range elf.req.Dirs {
236236
fileDir, err := v.MakeDir(path, name)
237237
if err != nil {
238-
elf.res.Error = []string{errMkdir, elf.req.Name}
238+
elf.res.Error = []string{errMkdir, elf.req.Name, err.Error()}
239239
break
240240
}
241241
added = append(added, fileDir)
@@ -251,12 +251,12 @@ func (elf *ElFinderConnector) mkFile() {
251251
v := elf.getVolume(IDAndTarget[0])
252252
path, err := elf.parseTarget(strings.Join(IDAndTarget[1:], "_"))
253253
if err != nil {
254-
elf.res.Error = []string{"errMkfile", elf.req.Name}
254+
elf.res.Error = []string{"errMkfile", elf.req.Name, err.Error()}
255255
return
256256
}
257257
fileDir, err := v.MakeFile(path, elf.req.Name)
258258
if err != nil {
259-
elf.res.Error = []string{"errMkfile", elf.req.Name}
259+
elf.res.Error = []string{"errMkfile", elf.req.Name, err.Error()}
260260
return
261261
}
262262
elf.res.Added = []FileDir{fileDir}
@@ -486,8 +486,15 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
486486
elf.tree()
487487
case "file":
488488
readFile, filename, err := elf.file()
489+
if req.Form.Get("cpath") != "" {
490+
http.SetCookie(rw, &http.Cookie{Path: req.Form.Get("cpath"), Name: "elfdl" + req.Form.Get("reqid"), Value: "1"})
491+
}
489492
if err != nil {
493+
log.Printf("Download file err: %s", err)
490494
elf.res.Error = err.Error()
495+
rw.WriteHeader(403)
496+
_, _ = rw.Write([]byte(err.Error()))
497+
return
491498
} else {
492499
mimeType := mime.TypeByExtension(filepath.Ext(filename))
493500
rw.Header().Set("Content-Type", mimeType)
@@ -496,12 +503,9 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
496503
} else {
497504
rw.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename=="%s"`, filename))
498505
}
499-
if req.Form.Get("cpath") != "" {
500-
http.SetCookie(rw, &http.Cookie{Path: req.Form.Get("cpath"), Name: "elfdl" + req.Form.Get("reqid"), Value: "1"})
501-
}
502506
_, err := io.Copy(rw, readFile)
507+
defer readFile.Close()
503508
if err == nil {
504-
_ = readFile.Close()
505509
log.Printf("download file %s successful", filename)
506510
return
507511
} else {
@@ -541,26 +545,29 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
541545
files := req.MultipartForm.File["upload[]"]
542546
added := make([]FileDir, 0, len(files))
543547
errs := make([]string, 0, len(files))
548+
if len(errs) == 0 {
549+
errs = append(errs, errUploadFile)
550+
}
544551
if elf.req.Cid != 0 && elf.req.Chunk != "" {
545552
re, err := regexp.Compile(`(.*?)\.([0-9][0-9]*?_[0-9][0-9]*?)(\.part)`)
546553
if err != nil {
547-
elf.res.Error = errFolderUpload
554+
errs = append(errs, err.Error())
548555
break
549556
}
550557
ch := re.FindStringSubmatch(elf.req.Chunk)
551558
if len(ch) != 4 {
552-
elf.res.Error = errUploadFile
559+
errs = append(errs, err.Error())
553560
break
554561
}
555562
t := strings.Split(ch[2], "_")
556563
currentPart, err := strconv.Atoi(t[0])
557564
if err != nil {
558-
elf.res.Error = errUploadFile
565+
errs = append(errs, err.Error())
559566
break
560567
}
561568
totalPart, err := strconv.Atoi(t[1])
562569
if err != nil {
563-
elf.res.Error = errUploadFile
570+
errs = append(errs, err.Error())
564571
break
565572
}
566573
rangeData := strings.Split(elf.req.Range, ",")
@@ -570,17 +577,17 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
570577
}
571578
offSet, err := strconv.Atoi(rangeData[0])
572579
if err != nil {
573-
elf.res.Error = errUploadFile
580+
errs = append(errs, err.Error())
574581
break
575582
}
576583
chunkLength, err := strconv.Atoi(rangeData[1])
577584
if err != nil {
578-
elf.res.Error = errUploadFile
585+
errs = append(errs, err.Error())
579586
break
580587
}
581588
totalSize, err := strconv.Atoi(rangeData[2])
582589
if err != nil {
583-
elf.res.Error = errUploadFile
590+
errs = append(errs, err.Error())
584591
break
585592
}
586593
filename := ch[1]
@@ -609,12 +616,12 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
609616
// Chunk merge request
610617
re, err := regexp.Compile(`([0-9]*)_([0-9]*)_(.*)`)
611618
if err != nil {
612-
elf.res.Error = errFolderUpload
619+
errs = append(errs, err.Error())
613620
break
614621
}
615622
ch := re.FindStringSubmatch(elf.req.Chunk)
616623
if len(ch) != 4 {
617-
elf.res.Error = errFolderUpload
624+
errs = append(errs, err.Error())
618625
break
619626
}
620627
var uploadPath string
@@ -639,14 +646,16 @@ func (elf *ElFinderConnector) dispatch(rw http.ResponseWriter, req *http.Request
639646
}
640647
result, err := v.UploadFile(dirpath, uploadPath, uploadFile.Filename, f)
641648
if err != nil {
642-
errs = append(errs, "errUpload")
649+
errs = append(errs, err.Error())
643650
continue
644651
}
645652
added = append(added, result)
646653
}
647654

648655
}
649-
elf.res.Warning = errs
656+
if len(errs) > 1 {
657+
elf.res.Warning = errs
658+
}
650659
elf.res.Added = added
651660
case "zipdl":
652661
switch elf.req.Download {

0 commit comments

Comments
 (0)