dongshuobei1037 2016-10-15 06:42
浏览 78
已采纳

golang服务器:如何连续检索多个文件

I have implemented a http server based on gin (golang web framework).

I post 2 pictures to server with curl multipart/form-data:

curl -X POST -F upload0=@jpg -F upload1=@jpg -H "Content-Type: multipart/form-data" "http://server:port/path"

Server code looks like this:

func extractImgs(c *gin.Context) {
    prefix := "prefix"
    for ix := 0; ix < 2; ix++ {
        file, _, err := c.Request.FormFile(prefix + strconv.Itoa(ix))
        if err != nil {
            // do sth.
            return
        }
        face_recognize_async(file)
    }
}

You know, face recognition is time-consuming, I hope the work-flow is:

get_1st_img -> recognize_face -> get_2nd_img -> recognize_face -> ...

I print c.Request.FormFile() execution time, it returns after retrieved all 2 files.

My questions:

1) how to retrieve these files continuously, just like traverse linked list;

2) Is http multipart a good choice, should I implement it with TCP/STCP?

  • 写回答

1条回答 默认 最新

  • dqgo99177 2016-10-15 17:58
    关注

    Since FormFile indexes the files from the posted form, it requires that the entire form already be parsed. From the FormFile docs:

    FormFile calls ParseMultipartForm and ParseForm if necessary.

    If you want to stream the the multipart form one part at a time, use Request.MultipartReader

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示