Golang中国

qingo

Golang China 第 3267 号会员,加入于 2015-04-09 17:26


qingo最近回复了


回复了 bugclose 创建的主题: 我和小伙伴做了一个小清新的bug管理工具,给大家分享一下 2016-05-08 23:35

厉害啊。很好看。

回复了 jackhu 创建的主题: golang 快速入门手册(适合有开发经验的人) 2016-03-21 20:45

学习了。

回复了 nixuehan 创建的主题: beego源代码分析 手把手教你写框架 -_-!! 2016-03-15 21:06

谢谢,收藏。

回复了 16779242 创建的主题: mgo如何直接存储json? 2016-02-21 13:22

要的就是这个,谢谢~

回复了 chris 创建的主题: 请教个问题,go可以直接insert一个json字符串,而不用提前定义model吗 2016-02-21 12:55

我也在学,mongodb就是不需要提前定义数据结构。

回复了 xjiaj8 创建的主题: 请教sqlite3的一个问题 2016-02-21 12:43

我升级go和beego到1.6后,请问2个问题:
1、为何升级前不提示需要cgo,升级后sqlite就提示需要?
2、beego热编译很慢,为何升级前热编译很快?
到底有啥玄机啊?

回复了 xiaolunwen 创建的主题: Tango操作手册发布 2016-02-03 19:54

看不到,怎么回事啊?

回复了 kzzhr 创建的主题: 有没有UEditor的Go图片后端? 2016-02-03 13:33

最近在站长的基础上完善了基本功能。https://github.com/3xxx/UEditor-golang
满足不同页面将图片等附件上传至不同新建文件夹中。
只是用的是beego框架。
相比较md,ue可以批量上传,不过批量上传用的是webupload,虽然都是百度的,但webupload相对于UE而言,感觉好使用很多,包括文档以及api中的事件等。
controllers中基本代码如下:——新手,不对的地方请指正。

func (c *UeditorController) ControllerUE() {
    op := c.Input().Get("action")
    // key := c.Input().Get("key") //这里进行判断各个页面,如果是addtopic,如果是addcategory
    switch op {
    case "config": //这里是conf/config.json
        file, err := os.Open("conf/config.json")
        if err != nil {
            log.Fatal(err)
            os.Exit(1)
        }
        defer file.Close()
        fd, err := ioutil.ReadAll(file)
        src := string(fd)
        re, _ := regexp.Compile("\\/\\*[\\S\\s]+?\\*\\/") //参考php的$CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("config.json")), true);
        //将php中的正则移植到go中,需要将/ \/\*[\s\S]+?\*\/  /去掉前后的/,然后将\改成2个\\
        //参考//去除所有尖括号内的HTML代码,并换成换行符
        // re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")
        // src = re.ReplaceAllString(src, "\n")
        //当把<和>换成/*和*\时,斜杠/和*之间加双斜杠\\才行。
        src = re.ReplaceAllString(src, "")
        tt := []byte(src)
        var r interface{}
        json.Unmarshal(tt, &r) //这个byte要解码
        c.Data["json"] = r
        c.ServeJson()

    case "uploadimage", "uploadfile", "uploadvideo":
        number := c.Input().Get("number")
        name := c.Input().Get("name")
        err := os.MkdirAll(".\\attachment\\"+number+name, 0777)
        if err != nil {
            beego.Error(err)
        }
        //保存上传的图片
        //获取上传的文件,直接可以获取表单名称对应的文件名,不用另外提取
        _, h, err := c.GetFile("upfile")
        if err != nil {
            beego.Error(err)
        }
        path1 := ".\\attachment\\" + number + name + "\\" + h.Filename
        err = c.SaveToFile("upfile", path1)
        if err != nil {
            beego.Error(err)
        }
        c.Data["json"] = map[string]interface{}{"state": "SUCCESS", "url": "/attachment/" + number + name + "/" + h.Filename, "title": h.Filename, "original": h.Filename}
        c.ServeJson()

    case "uploadscrawl":
        number := c.Input().Get("number")

        name := c.Input().Get("name")
        err := os.MkdirAll(".\\attachment\\"+number+name, 0777)
        if err != nil {
            beego.Error(err)
        }
        path1 := ".\\attachment\\" + number + name + "\\"
        //保存上传的图片
        //upfile为base64格式文件,转成图片保存
        ww := c.Input().Get("upfile")
        ddd, _ := base64.StdEncoding.DecodeString(ww)           //成图片文件并把文件写入到buffer
        newname := strconv.FormatInt(time.Now().Unix(), 10)     // + "_" + filename
        err = ioutil.WriteFile(path1+newname+".jpg", ddd, 0666) //buffer输出到jpg文件中(不做处理,直接写到文件)
        if err != nil {
            beego.Error(err)
        }
        c.Data["json"] = map[string]interface{}{
            "state":    "SUCCESS",
            "url":      "/attachment/" + number + name + "/" + newname + ".jpg",
            "title":    newname + ".jpg",
            "original": newname + ".jpg",
        }
        c.ServeJson()
    case "listimage":
        list := []List{
            {"/static/upload/1.jpg"},
            {"/static/upload/2.jpg"},
        }
        listimage := Listimage{"SUCCESS", list, 1, 21}
        c.Data["json"] = listimage
        c.ServeJson()

    case "catchimage":
        list := []ListCatch{
            {"/static/upload/1.jpg", "https://pic2.zhimg.com/7c4a389acaa008a6d1fe5a0083c86975_b.png", "SUCCESS"},
            {"/static/upload/2.jpg", "https://pic2.zhimg.com/7c4a389acaa008a6d1fe5a0083c86975_b.png", "SUCCESS"},
        }
        catchimage := Catchimage{"SUCCESS", list}
        c.Data["json"] = catchimage
        c.ServeJson()

        file, header, err := c.GetFile("source") // r.FormFile("upfile")
        beego.Info(header.Filename)
        if err != nil {
            panic(err)
        }
        defer file.Close()
        filename := strings.Replace(uuid.NewUUID().String(), "-", "", -1) + path.Ext(header.Filename)
        err = os.MkdirAll(path.Join("static", "upload"), 0775)
        if err != nil {
            panic(err)
        }
        outFile, err := os.Create(path.Join("static", "upload", filename))
        if err != nil {
            panic(err)
        }
        defer outFile.Close()
        io.Copy(outFile, file)
        // 需要支持callback参数,返回jsonp格式
        // list项的state属性和最外面的state格式一致
        // {
        //     "state": "SUCCESS",
        //     "list": [{
        //         "url": "upload/1.jpg",
        //         "source": "http://b.com/2.jpg",
        //         "state": "SUCCESS"
        //     }, {
        //         "url": "upload/2.jpg",
        //         "source": "http://b.com/2.jpg",
        //         "state": "SUCCESS"
        //     }, ]
        // }
    }
}
回复了 JPush 创建的主题: 三四天的Rails学习之路 2016-02-03 08:24

好是好,就是环境搭建起来很麻烦,太专业了。

qingo 创建的更多回复