• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go语言获取网络图片后返回给前端展示

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

//获取C的图片数据
func ReadImgData(url string) []byte {
    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    pix, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    return pix
}

func myWeb(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
	w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
  //w.Header().Set("content-type", "application/json") //返回数据格式是json

	query := r.URL.Query();
	var url string;
	var name string;
	if len(query["url"]) > 0{
		url = query["url"][0]
	}else {
		fmt.Fprintf(w, "");
		return ;
	}

	if len(query["name"]) > 0{
		name = query["name"][0];
		w.Header().Set("content-type", "application/octet-stream")
		w.Header().Set("Content-Disposition", "attachment; filename=" + name)
	}

	fmt.Println(url,name);
	pix := ReadImgData(url);
	w.Write(pix )
    //fmt.Fprintf(w, "这是一个开始");
}

func main() {
    http.HandleFunc("/", myWeb)
    fmt.Println("服务器即将开启,访问地址 http://localhost:3000")
    err := http.ListenAndServe(":3000", nil)
    if err != nil {
        fmt.Println("服务器开启错误: ", err)
    }
}

  

 

前端代码

<img src="http://localhost:3000?url=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320&name=test.jpg" >

  

 

可以解决跨域的问题,下载图片


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
this.$router.go()和this.$router.push()的差别发布时间:2022-07-10
下一篇:
05.go切片详细介绍发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap