golang post模擬客戶(hù)端多文件上傳以及處理

為了模擬客戶(hù)端和服務(wù)器端惑淳,我這兒開(kāi)了兩個(gè)進(jìn)程,進(jìn)程A(監(jiān)聽(tīng)地址:http://192.168.50.250:8080 路由/objects)進(jìn)程B(監(jiān)聽(tīng)地址:http://192.168.50.250:8081 路由:/objetcs)方法都是post架馋。進(jìn)程A是監(jiān)聽(tīng)客戶(hù)上傳的文件,然后模擬http clien上傳給進(jìn)程B西饵。在B中將文件存儲(chǔ)或者將內(nèi)容打印悼沿。

進(jìn)程A post /ojects:

func PostFile(c *gin.Context){

    var b bytes.Buffer
    w := multipart.NewWriter(&b)
    c.Request.ParseMultipartForm(100000)
    multiPartform ,_:= c.MultipartForm()
        err := utils.CreatFormFiles(&b,multiPartform,w)
        if err != nil{
        fmt.Println(err)
        return
    }
    request,err:=http.NewRequest(http.MethodPost,"http://192.168.50.250:8081/objects",&b)
    if err != nil{
        fmt.Println(err)
        return
    }
    //模擬客戶(hù)端請(qǐng)求,還可以在request.Form中添加其他信息牺荠,如username翁巍,password等key_values
    client := http.Client{Timeout:5*time.Second}
    request.Header.Set("Content-Type",w.FormDataContentType())
    resp,err := client.Do(request)
    if err != nil{
        fmt.Println(err)
        return
    }
    handlers.SendRespense(c,resp.StatusCode,"ok")
}

CreatFormFiles:

func CreatFormFiles(b *bytes.Buffer,form *multipart.Form,w *multipart.Writer)error{
    for name,files := range form.File{
        for _,file := range files{
            f,err := file.Open()
            if err != nil{
                return err
            }
            fw,err := w.CreateFormFile(name,file.Filename)
            if err != nil{
                return err
            }
            _,err = io.Copy(fw,f)
            if err != nil{
                return err
            }
        }
    }
    w.Close()  //要關(guān)閉,會(huì)將w.w.boundary刷寫(xiě)到w.writer中
    return nil
}

進(jìn)程B post /obcjetcs:

c.Header("Access-Control-Allow-Origin", "*")
    c.Header("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS")
    c.Header("Access-Control-Allow-Headers", "authorization, origin, content-type, accept")
    c.Header("Allow", "HEAD,GET,POST,PUT,PATCH,DELETE,OPTIONS")
    c.Header("Content-Type", "multipart/form-data")
    c.Request.ParseMultipartForm(5000000)
    form,err := c.MultipartForm()
    if err != nil{
        c.JSON(500,"bad form")
    }
    fheaders := form.File["upload"]
    for _,fheader := range fheaders{
        fmt.Printf("name:%s,f:%v","upload",fheader.Filename)
    }
    c.JSON(200,"ok")

這樣我們就可以在前端上傳多個(gè)文件休雌。我這里示范的是在upload這個(gè)key里帶了三個(gè)文件灶壶。
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挑辆,隨后出現(xiàn)的幾起案子例朱,更是在濱河造成了極大的恐慌孝情,老刑警劉巖鱼蝉,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異箫荡,居然都是意外死亡魁亦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)羔挡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洁奈,“玉大人间唉,你說(shuō)我怎么就攤上這事±酰” “怎么了呈野?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)印叁。 經(jīng)常有香客問(wèn)我被冒,道長(zhǎng),這世上最難降的妖魔是什么轮蜕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任昨悼,我火速辦了婚禮,結(jié)果婚禮上跃洛,老公的妹妹穿的比我還像新娘率触。我一直安慰自己,他們只是感情好汇竭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布葱蝗。 她就那樣靜靜地躺著,像睡著了一般细燎。 火紅的嫁衣襯著肌膚如雪垒玲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天找颓,我揣著相機(jī)與錄音合愈,去河邊找鬼。 笑死击狮,一個(gè)胖子當(dāng)著我的面吹牛佛析,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彪蓬,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼寸莫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了档冬?” 一聲冷哼從身側(cè)響起膘茎,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酷誓,沒(méi)想到半個(gè)月后披坏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盐数,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年棒拂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帚屉,死狀恐怖谜诫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攻旦,我是刑警寧澤喻旷,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站牢屋,受9級(jí)特大地震影響掰邢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伟阔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一辣之、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皱炉,春花似錦怀估、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至灾部,卻和暖如春康铭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赌髓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工从藤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锁蠕。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓夷野,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親荣倾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悯搔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)舌仍,斷路器妒貌,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 專(zhuān)業(yè)考題類(lèi)型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 8,988評(píng)論 0 13
  • 本文整理了在實(shí)踐過(guò)程中使用的Linux網(wǎng)絡(luò)工具,這些工具提供的功能非常強(qiáng)大铸豁,我們平時(shí)使用的只是冰山一角灌曙,比如lso...
    老夫劉某閱讀 3,526評(píng)論 0 7
  • 簡(jiǎn)述osi七層模型和TCP/IP五層模型 osi七層模型: osi七層模型主要分為:(1)應(yīng)用層(Applicat...
    家有豬寶_閱讀 675評(píng)論 1 0
  • 區(qū)塊鏈投資資產(chǎn)全線(xiàn)暴漲,這一波熊市不少散戶(hù)被清洗出市場(chǎng)推姻,漲高后又有很多投機(jī)者蜂擁而至平匈。熊市那陣有朋友問(wèn)我現(xiàn)在把幣賣(mài)...
    致遠(yuǎn)_33f4閱讀 120評(píng)論 0 0