go学习过程二:首先得有个目标

1.定一个目标,有目标就有了动力,还有了方向:

目标:创建相册网站
准备工作:
1.第一个小目标:得有上传图片的功能.
2.环境已经搭建好了,直接开搞
用到的技术:go,vue
直接上代码:
页面:
<!DOCTYPE html>
<html xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <title>图片上传</title>
    <script src="/static/js/vue.min.js"></script>
    <script type="text/javascript" src="/static/js/jquery-3.2.1.min.js"></script>
</head>
<body>
<div id="app">
    <div v-html="message"></div>
    <form id="uploadForm" action="uploadimg" enctype="multipart/form-data"><!---->
        <input type="file" name="image" id="file_upload" multiple><!--multiple 批量上传-->
        <img :src="imgshow">
        <button id="upload" type="button" v-on:click="uploadimg">上传</button>
    </form>
</div>
<script>


    new Vue({
        el: '#app',
        data: {
            imgshow: "static/img/img_7.jpg",
            message: '<h1>测试图片上传</h1>'
        },
        methods: {
            uploadimg: function (event) {
                var self = this;
                var imgdata = new FormData($('#uploadForm')[0]);
                alert("123");
                $.ajax({
                    url: '/test2',
                    type: 'POST',
                    cache: false,
                    data: new FormData($('#uploadForm')[0]),
                    processData: false,  // 关键点
                    contentType: false,  // 关键点
                    success: function (res) {
                        self.imgshow = res;
                    },
                    error: function (e) {
                        alert("错误");
                    }
                })
            }
        }
    })
</script>
</body>
</html>
后台: 打开页面
func (c *Test2Controller) Get() {
   //c.Ctx.WriteString("loading...")
   //data := getData("123")
   //mapb, _ := json.Marshal(data)
   //c.Ctx.WriteString(string(mapb))
   c.Data["Website"] = "beego.me"
   c.Data["Email"] = "astaxie@gmail.com"
   c.TplName = "index.tpl"
}
上传图片:经测试,支持手机上传.
func (c *Test2Controller) Post() {
   files, _ := c.GetFiles("image") //获取上传的文件
   for _, file := range files {
      path := "./static/img/" + file.Filename
      p, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
      if err != nil {
         fmt.Printf("文件打开失败")
      }
      fileStream, err := file.Open()
      defer p.Close()
      io.Copy(p, fileStream)
      if (err != nil) {
         fmt.Printf(file.Filename + "成功!")
      }
   }
   c.Redirect("/test2", 302)
}
未完待续...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值