diff --git a/internal/service/file.go b/internal/service/file.go index ff264b3d..6fb87366 100644 --- a/internal/service/file.go +++ b/internal/service/file.go @@ -107,7 +107,6 @@ func (s *FileService) Save(w http.ResponseWriter, r *http.Request) { return } - s.setPermission(req.Path, 0755, "www", "www") Success(w, nil) } @@ -333,12 +332,30 @@ func (s *FileService) UnCompress(w http.ResponseWriter, r *http.Request) { return } + oldList, err := io.ReadDir(req.Path) + if err != nil { + Error(w, http.StatusInternalServerError, "%v", err) + return + } + if err = io.UnCompress(req.File, req.Path); err != nil { Error(w, http.StatusInternalServerError, "%v", err) return } - s.setPermission(req.Path, 0755, "www", "www") + currentList, err := io.ReadDir(req.Path) + if err != nil { + Error(w, http.StatusInternalServerError, "%v", err) + return + } + + // 取新增的设置权限 + for _, currentDir := range currentList { + if !slices.Contains(oldList, currentDir) { + s.setPermission(filepath.Join(req.Path, currentDir.Name()), 0755, "www", "www") + } + } + Success(w, nil) }