2021-06-13 来源:华纳网 责任编辑:王双双 人气:
核心提示:【谷雨课堂】Go实战 No.018 Go干货!网站服务上传图片或文件
知识点:

上传图片或文件
本课内容:

大家好,欢迎来到谷雨课堂,

上节我们讲了表单数据的提交与获取

在上节中我们提到,有一种表单组件类型

叫做,文件上传。

这个组件非常重要,因为几乎所有的图片及文件上传

都需要使用这个组件。

本节我们还是使用传统的表单进行文件或图片的上传

<input type="file" name="img">

在表单中,一定要指定传输的类型

enctype="multipart/form-data"



例子
<hr>
<form method="post" action="/save_upload" target="_blank" enctype="multipart/form-data">
    图片:<input type="file" name="img"><br>

    <hr>
    <input type="submit" name="btnOk" value="保存">
</form>



func InitWebApi() {
  log.Println("GuYu GoLang ....")
  webServer := gin.Default()

  //注册模板目录
  webServer.LoadHTMLGlob("tpl/*")

  webServer.GET("/", func(c *gin.Context) {
    c.HTML(http.StatusOK, "index_upload.html", gin.H{})
  })

  webServer.POST("/save_upload", func(c *gin.Context) {
    str := "ok"
    file, e := c.FormFile("img")
    if e != nil {
      c.JSON(200, gin.H{
        "code": -100,
        "msg":  e.Error(),
      })
      return
    }

    sExt := path.Ext(file.Filename)
    sExt = strings.ToLower(sExt)
    sDestFile := "upload/" + common.Hms() + "_" + common.Rnd(16) + sExt
    e = c.SaveUploadedFile(file, sDestFile)
    if e != nil {
      c.JSON(200, gin.H{
        "code": -101,
        "msg":  e.Error(),
      })
      return
    }
    c.String(http.StatusOK, str)
  })
  webServer.Run(":8090")
}




引申阅读:

H5对文件上传新增了很多属性和方法。

/**
* FileReader
* 1、构建FileReader实例
* 2、选择要使用的读取方式,如:readAsDataURL(),将文件对象传递给该方法
* 3、监听读取完成事件  onload,通过 this.result 得到读取结果
* 4、其他事件监听
*
* 读取方式:
* readAsDataURL(file)  读取地址
* readAsText(file[,encoding])  读取文本
* readAsBinaryString(file)  以二进制读取
*
* 事件:
* onload  读取完成
* onloadstart  开始读取
* onloadend  结束读取  无论成功与否都会触发
* onerror  错误触发
* onabort  中断读取时触发
*
* abort() 中断读取方法
* */


完整的源代码可以登录【华纳网】下载。

https://www.worldwarner.com/



                                                                                                                                                                                    




免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。