日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

beego:將服務(wù)器上的圖片顯示到客戶端瀏覽器

 菌心說 2021-09-08

將服務(wù)器上的圖片顯示到客戶端瀏覽器

// @Title // @Description 顯示圖片 // @Paramnum query stringtrue比如:圖片名字20181120164548_75_jd.jpg // @Success 200 // @router /ShowImage [get] func (u *FirstpageController) ShowImage() { u.Ctx.ResponseWriter.Header().Set('Access-Control-Allow-Origin', u.Ctx.Request.Header.Get('Origin')) filename := u.GetString('num') //獲取需要上傳的文件文件名 //查看文件名類型是否正確 picture := strings.Split(filename,'.') //讀取到字符串,并以.符號分隔開 layout := strings.ToLower(picture[len(picture)-1]) //把字母字符轉(zhuǎn)換成小寫,非字母字符不做出處理,返回此字符串轉(zhuǎn)換為小寫形式的副本。 if layout != 'jpg' { //1533398400000 u.Ctx.WriteString('圖片格式必須為:(jpg)') panic('圖片格式必須為:(jpg)') } //查看本及其上面是否存在需要的圖片 readPath := beego.AppConfig.String('uploadpath') img:= path.Join(readPath,filename) u.Ctx.Output.Header('Content-Type', 'image/jpg') u.Ctx.Output.Header('Content-Disposition',fmt.Sprintf('inline; filename=\'%s\'',img)) file, err := ioutil.ReadFile(img) if err != nil { beego.Info('文件不存在') return } u.Ctx.WriteString(string(file)) }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

SWAGGER測試效果:
在這里插入圖片描述

u.Ctx.Output.Header(“Content-Disposition”,fmt.Sprintf(“inline; filename=”%s'',img))

響應(yīng)頭信息中的Content-Disposition用于告知瀏覽器其獲取到的文件是需要展示與頁面內(nèi)還是需要作為附件保存到用戶本地,如果需要展示在頁面內(nèi),設(shè)置為inline,否則設(shè)置為attachemnt

u.Ctx.Output.Header(“Content-Type”, “image/jpg”)

告訴客戶端本服務(wù)器提供的對象的類型是image/jpg。image/jpg根據(jù)需要改,比如image/png,image/jpg等

u.Ctx.WriteString(string(file))

渲染瀏覽器客戶端

服務(wù)器端保存客戶端發(fā)送的圖片

// @Title
// @Description      意見
// @Param123      query    []bytefalse   獲取圖片二進制流出
// @Success 200
// @router /UpALL [post]
func (u *TodayRptController) UpALL() {
u.Ctx.ResponseWriter.Header().Set('Access-Control-Allow-Origin', u.Ctx.Request.Header.Get('Origin'))

tmpfile, fheader, err  := u.Ctx.Request.FormFile('123')   // u.GetFile('123') 效果相同  “123”是二進制流的鍵名.獲取上傳的文件
if err != nil{
panic(err)
}
defer tmpfile.Close()  //關(guān)閉上傳的文件,不然的話會出現(xiàn)臨時文件不能清除的情況
path := '/home/ocena/' + '20181212.jpg'  //設(shè)置保存路徑
beego.Info('Header:', fheader.Header) //map[Content-Disposition:[form-data; name='123'; filename='upimage.jpg'] Content-Type:[image/jpeg]]
beego.Info('Size:', fheader.Size)    //114353
beego.Info('Filename:', fheader.Filename)  //upimage.jpg
u.SaveToFile('123', path)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

postmain模擬發(fā)送圖片到瀏覽器:
在這里插入圖片描述

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多