• beego upload file


    1,占位

    uos@uos-PC:~/go/huzh_web$ tree
    .
    ├── conf
    │   └── app.conf
    ├── controllers
    │   ├── default.go
    │   └── fileopt.go
    ├── go.mod
    ├── go.sum
    ├── huzh_web
    ├── main.go
    ├── models
    ├── routers
    │   └── router.go
    ├── static
    │   ├── css
    │   ├── easyui
    │   ├── img
    │   ├── js
    │   │   └── reload.min.js
    │   ├── upload
    │   │   └── 005.png
    │   └── uploadfile
    ├── tests
    │   └── default_test.go
    └── views
        ├── fileopt.html
        ├── fileupload.html
        ├── index.tpl
        └── upload.html

    2,

    fileupload.html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <title>文件上传</title>
      </head>
      <body>
    
        <form enctype="multipart/form-data" method="post">
          <input type="file" name="uploadfilename" />
          <input type="submit">
        </form>
    
      </body>
    </html>

    3, controllor

    package controllers
    
    import (
            "log"
            "github.com/astaxie/beego"
    )
    
    type FileUploadController struct {
            beego.Controller
    }
    
    // 上传文件的页面
    func (c * FileUploadController) Get() {
            c.TplName = "fileupload.html"
    }
    
    // 上传文件
    func (this *FileUploadController) Post() {
            // uploadfilename,这是一个key值,对应的是html中input type-‘file’的name属性值
            f, h, err := this.GetFile("uploadfilename")
            if err != nil {
                    log.Fatal("getfile err", err)
            }
    
            // 关闭上传的文件,不然的话会出现临时文件不能清除的情况
            defer f.Close()
            // 保存位置在 static/upload, 没有文件夹要先创建
            this.SaveToFile("uploadfilename", "static/upload/" + h.Filename)
            // html页面
            this.TplName = "fileupload.html"
    }
    

    3, router

    package routers
    
    import (
            "huzh_web/controllers"
            "github.com/astaxie/beego"
    )
    
    func init() {
            //beego.Router("/", &controllers.MainController{})
            //beego.Router("/", &controllers.UploadController{},"*:Get")
            //beego.Router("/home", &controllers.UploadController{},"*:Post")
            beego.Router("/fileupload", &controllers.FileUploadController{})
    
    
    }
    

    4, upload file 

    uos@uos-PC:~$ curl  -X POST -H "Content-Type: multipart/form-data" -F "uploadfilename=@005.png" http://1.1.13.3:8080/fileupload -v
    Note: Unnecessary use of -X or --request, POST is already inferred.
    * Expire in 0 ms for 6 (transfer 0x1afef50)
    *   Trying 1.1.13.3...
    * TCP_NODELAY set
    * Expire in 200 ms for 4 (transfer 0x1afef50)
    * Connected to 1.1.13.3 (1.1.13.3) port 8080 (#0)
    > POST /fileupload HTTP/1.1
    > Host: 1.1.13.3:8080
    > User-Agent: curl/7.64.0
    > Accept: */*
    > Content-Length: 17228317
    > Content-Type: multipart/form-data; boundary=------------------------1bac053d7e95c8a5
    > Expect: 100-continue
    >
    * Expire in 1000 ms for 0 (transfer 0x1afef50)
    < HTTP/1.1 100 Continue
    < HTTP/1.1 200 OK
    < Content-Length: 285
    < Content-Type: text/html; charset=utf-8
    < Server: beegoServer:1.12.1
    < Date: Tue, 25 Aug 2020 10:06:55 GMT
    <
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <title>文件上传</title>
      </head>
      <body>
    
        <form enctype="multipart/form-data" method="post">
          <input type="file" name="uploadfilename" />
          <input type="submit">
        </form>
    
      </body>
    </html>
    * Connection #0 to host 1.1.13.3 left intact
    

      

  • 相关阅读:
    java 寒假作业
    java 搭积木
    java 移动距离
    java 垒骰子
    java 饮料换购
    java 牌型种数
    ONOS基础教程(QuickStart with a VM)
    Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
    PM2使用基本介绍
    nodejs项目部署
  • 原文地址:https://www.cnblogs.com/eiguleo/p/13561070.html
Copyright © 2020-2023  润新知