liuxiaolong
2019-08-06 e7023e0b959f123965c5fe867bb710908f2de076
controllers/fileController.go
@@ -20,6 +20,7 @@
   "sort"
   "strconv"
   "strings"
   "sync"
   "time"
   "webserver/extend/code"
   "webserver/extend/config"
@@ -674,24 +675,36 @@
   addResult := make(map[string]interface{}, 0)
   successList := make([]string, 0)
   failList := make([]string,0)
   tAllStart := time.Now()
   var wg sync.WaitGroup
   var lock sync.Mutex
   for _, head := range fileHeaders {
      //文件的名称
      filename := head.Filename
      file, err := head.Open()
      fmt.Println(file, err, filename)
      if err != nil {
         log.Fatal(err)
      }
      field, _, err1 := uploadFileReturnAddr(file, filename, tableId)
      //extNames = append(extNames, field)
      if err1 != nil || field == "" {
         failList = append(failList, filename)
      } else {
         successList = append(successList, filename)
      }
      wg.Add(1)
      go func(head *multipart.FileHeader,tableId string) {
         defer wg.Done()
         tIStart := time.Now()
         filename := head.Filename
         file, err := head.Open()
         fmt.Println(file, err, filename)
         if err != nil {
            lock.Lock()
            failList = append(failList, filename)
            lock.Unlock()
            return
         }
         field, _, err1 := uploadFileReturnAddr(file, filename, tableId)
         lock.Lock()
         if err1 != nil || field == "" {
            failList = append(failList, filename)
         } else {
            successList = append(successList, filename)
         }
         lock.Unlock()
         logger.Debug(filename,"切图用时:",time.Since(tIStart))
      }(head, tableId)
      wg.Wait()
   }
   logger.Debug("切",len(fileHeaders),"张人脸用时:", time.Since(tAllStart))
   addResult["successList"] = successList
   addResult["failList"] = failList
   addResult["fields"] = extNames