zoukankan      html  css  js  c++  java
  • go语言获取网络图片后返回给前端展示

    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" >
    

      

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

  • 相关阅读:
    js中的数组
    range关键字,map,sync.Map,list
    数组,切片
    类型转换,指针,变量的生命周期,常量,模拟枚举,类型别名和类型定义
    字符串类型及其常用操作
    整数类型,浮点类型,复数,bool类型
    声明,初始化,匿名变量,作用域
    C#并发编程——异步编程基础
    继承、多态、接口
    C#基础
  • 原文地址:https://www.cnblogs.com/muamaker/p/12740700.html
Copyright © 2011-2022 走看看