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 求一阶微分方程的幂级数
  • ¥15 关于#线性回归#的问题:【统计】回归系数要转化为相关系数才能进行Fisher' Z转化吗(相关搜索:回归模型)
  • ¥100 使用matlab解决含分段变量的优化问题
  • ¥15 matlab基于鲸鱼算法优化vmd
  • ¥20 PCB设计与制作问答
  • ¥20 课堂跑如何下载ppt
  • ¥15 STM32阿里云平台显示不了传感器采集的数据
  • ¥20 三菱FX系列PLC上位机串口下指令置位M64和M65,这两条指令分别是什么呢?
  • ¥15 有关结冰模拟程序咨询
  • ¥15 ubuntu服务器配置dns域名后无法访问其他域名