This commit is contained in:
wh_zcy 2022-08-22 10:53:52 +08:00
parent 12c18677fc
commit a007f255f1
6 changed files with 81 additions and 69 deletions

View File

@ -6,61 +6,16 @@ import (
"fmt" "fmt"
"go_dreamfactory/cmd/upgrade/tools" "go_dreamfactory/cmd/upgrade/tools"
"html/template" "html/template"
"io"
"io/ioutil" "io/ioutil"
"log" "log"
"net/http" "net/http"
"os"
"path" "path"
"strconv"
"strings" "strings"
"time" "time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
// func main() {
// http.HandleFunc("/download", FileDownload)
// http.HandleFunc("/upload", FileUpload)
// log.Print("http server start")
// if err := http.ListenAndServe(":8910", nil); err != nil {
// log.Fatal(err)
// }
// }
func FileUpload(w http.ResponseWriter, r *http.Request) {
//获取文件流,第三个返回值是错误对象
file, header, _ := r.FormFile("file")
//读取文件流为[]byte
b, _ := ioutil.ReadAll(file)
//把文件保存到指定位置
ioutil.WriteFile("/opt/upgrade", b, 0777)
//输出上传时文件名
fmt.Println("上传文件名:", header.Filename)
}
func FileDownload(w http.ResponseWriter, r *http.Request) {
filename := "E:\\projects\\workspace\\go_dreamfactory\\cmd\\v2\\RobotGUI.exe"
file, _ := os.Open(filename)
defer file.Close()
fileHeader := make([]byte, 512)
file.Read(fileHeader)
fileStat, _ := file.Stat()
w.Header().Set("Content-Disposition", "attachment; filename="+filename)
w.Header().Set("Content-Type", http.DetectContentType(fileHeader))
w.Header().Set("Content-Length", strconv.FormatInt(fileStat.Size(), 10))
file.Seek(0, 0)
io.Copy(w, file)
return
}
//go:embed views/* //go:embed views/*
var f embed.FS var f embed.FS
@ -92,6 +47,11 @@ func main() {
c.HTML(http.StatusOK, "index.html", nil) c.HTML(http.StatusOK, "index.html", nil)
}) })
r.GET("/upload", func(c *gin.Context) {
fmt.Println(tmpl.DefinedTemplates())
c.HTML(http.StatusOK, "upload.html", nil)
})
r.POST("/upload", func(c *gin.Context) { r.POST("/upload", func(c *gin.Context) {
f, err := c.FormFile("file") f, err := c.FormFile("file")
if err != nil { if err != nil {

View File

@ -0,0 +1,5 @@
解压文件
- resources
- RobotGUI.exe
建议覆盖所有文件

View File

@ -20,21 +20,7 @@
<body> <body>
<div id="app"> <div id="app">
<h1>下载更新包</h1>
<h1>上传原型,获取永久在线浏览地址</h1>
<upload type="drag" action="/upload" paste="true" accept=".zip" :on-success="handleSuccess">
<div style="padding: 20px 0">
<icon type="ios-cloud-upload" size="52" style="color: #3399ff"></icon>
<p>点击或者拖拽上传</p>
</div>
</upload>
<alert type="success" v-for="url in zips">
浏览地址:${ url }
</alert>
<strong>历史prd:</strong> <strong>历史prd:</strong>
<br><br> <br><br>

View File

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传</title>
<!-- import Vue.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.6/vue.min.js"></script>
<!-- import stylesheet -->
<link href="https://cdn.bootcdn.net/ajax/libs/iview/3.5.5-rc.1/styles/iview.min.css" rel="stylesheet">
<!-- import iView -->
<script src="https://cdn.bootcdn.net/ajax/libs/iview/3.5.5-rc.1/iview.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js"></script>
<style>
#app {
margin: 20px 40px;
}
</style>
</head>
<body>
<div id="app">
<h1>上传文件</h1>
<upload type="drag" action="/upload" paste="true" accept=".zip" :on-success="handleSuccess">
<div style="padding: 20px 0">
<icon type="ios-cloud-upload" size="52" style="color: #3399ff"></icon>
<p>点击或者拖拽上传</p>
</div>
</upload>
<alert type="success" v-for="url in zips">
浏览地址:${ url }
</alert>
<strong>历史prd:</strong>
<br><br>
<list border>
<list-item v-for="dir in dirs">
<a :href="dir.url" target="_blank">${ dir.name }</a> &nbsp;&nbsp; <span>${ dir.dateTime}</span>
</list-item>
</list>
</div>
<script>
new Vue({
el: "#app",
delimiters: ['${', '}'],
data: {
zips: [],
dirs: [],
},
methods: {
handleSuccess(response, file, fileList) {
this.zips.push(response.url)
}
},
created() {
axios.get("/dirs").then((res) => {
this.dirs = res.data.dirs
})
},
})
</script>
</body>
</html>

View File

@ -1,8 +0,0 @@
Website = "https://legu.com"
[Details]
Icon = "Icon.png"
Name = "RobotGUI"
ID = "com.legu.app"
Version = "1.0.1"
Build = 8

View File

@ -14,7 +14,7 @@ type about struct {
func newAbout() *about { func newAbout() *about {
var a about var a about
content := widget.NewCard("", "", widget.NewRichTextFromMarkdown(common.APP_ABOUT_INFO)) content := widget.NewCard("", "", widget.NewRichTextFromMarkdown(common.APP_ABOUT_INFO))
a.aboutDialog = dialog.NewCustom(common.APP_ABOUT_TITLE, common.APP_ABOUT_CONFIRM, content, globalWin.w) a.aboutDialog = dialog.NewCustom(common.APP_ABOUT_TITLE, common.APP_ABOUT_CONFIRM, content, toolWin.w)
return &a return &a
} }