Ver código fonte

fix:优化FomData提交文件传输逻辑

Cheng Jian 2 anos atrás
pai
commit
c0d1822164
2 arquivos alterados com 9 adições e 4 exclusões
  1. 1 1
      rpcx-gateway/converter.go
  2. 8 3
      rpcx-gateway/gateway.go

+ 1 - 1
rpcx-gateway/converter.go

@@ -148,7 +148,7 @@ func MultipartRequest2RpcxRequest(r *http.Request) (map[string]string, map[strin
 	}
 	formValues["authExclude"] = "false"
 
-	formValues["fileNum"] = string(len(form.File))
+	formValues["fileNum"] = strconv.Itoa(len(form.File))
 
 	return formValues, form.File, nil
 }

+ 8 - 3
rpcx-gateway/gateway.go

@@ -201,9 +201,14 @@ func sendFile(conn net.Conn, files map[string][]*multipart.FileHeader) error {
 		buf := make([]byte, 1024)
 		for {
 			n, err := file.Read(buf)
-			if n == 0 {
-				log.Debug("发送文件完成")
-				break
+			if err != nil {
+				if err == io.EOF {
+					log.Debug("文件发送完毕")
+					break
+				} else {
+					log.Debug(" f.Read err:", err)
+					break
+				}
 			}
 			// 写到网络socket中
 			_, err = conn.Write(buf[:n])