beego:将服务器上的图片显示到客户端浏览器
来源:http://www.shanhubei.com/archives/2840.html
将服务器上的图片显示到客户端浏览器
// @Title // @Description 显示图片 // @Param num query string true 比如:图片名字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]) //把字母字符转换成小写,非字母字符不做出处理,返回此字符串转换为小写形式的副本。 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)) }
u.Ctx.Output.Header(“Content-Disposition”,fmt.Sprintf(“inline; filename=”%s"",img))
响应头信息中的Content-Disposition用于告知浏览器其获取到的文件是需要展示与页面内还是需要作为附件保存到用户本地,如果需要展示在页面内,设置为inline,否则设置为attachemnt
u.Ctx.Output.Header(“Content-Type”, “image/jpg”)
告诉客户端本服务器提供的对象的类型是image/jpg。image/jpg根据需要改,比如image/png,image/jpg等
u.Ctx.WriteString(string(file))
渲染浏览器客户端
服务器端保存客户端发送的图片
// @Title // @Description 意见 // @Param 123 query []byte false 获取图片二进制流出 // @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() //关闭上传的文件,不然的话会出现临时文件不能清除的情况 path := "/home/ocena/" + "20181212.jpg" //设置保存路径 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) }
分类:
Golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人