网站首页 > 技术文章 正文
众所周知,文件上传服务有很多,例如,常见的有 ftp、lrzsz、wincp之类的。作为it从业人员,闲暇之余,写一些简单的小工具之类的也是常事。以下就是我利用form表单实现上传文件服务。偶尔在一些特殊环境可以使用的,比如某些特定场所不让使用开放工具之类的,就可以拿来用用。
话不多说,直接上代码(不会写代码的朋友可以直接关注私信我即可)
html核心部分:
<form action="/upload" method="post" enctype="multipart/form-data">
请选择上传文件:<input type="file" name="file" id=""><br>
<input type="submit" value="上传">
</form>
go语音编写一个可以上传文件的http服务
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"log"
)
func PostUpload(c *gin.Context) {
// 单文件
file, _ := c.FormFile("file")
log.Println(file.Filename)
// 上传文件到项目根目录,使用原文件名
c.SaveUploadedFile(file, file.Filename)
c.String(200, fmt.Sprintf("'%s' 上传成功!", file.Filename))
}
func GetUpload(c *gin.Context) {
c.HTML(200, "upload.html", nil)
}
func main() {
router := gin.Default()
// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)
router.MaxMultipartMemory = 8 << 20 // 8 MiB
router.LoadHTMLGlob("src/static/*html")
router.GET("/upload", GetUpload)
router.POST("/upload", PostUpload)
router.Run(":8888")
}
至此,拷贝代码直接运行就好啦。直接运行 之后,访问http://localhost:8888/upload
进行测试
操作就更简单啦,按图示数字顺序操作即可。
上传之后,在程序运行目录即可找到上传文件。
大家觉得简单不,上面代码在设置好golang环境之后,直接拷贝运行即可。也可以关注+私聊我,拿可执行文件。
大家有什么好的需求想法也可以跟我说,我可以免费给大家写一些小工具~,能电脑做的就解放双手啦~
猜你喜欢
- 2024-09-18 Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移
- 2024-09-18 如何用Python抓抖音上的小姐姐(如何用python抓抖音上的小姐姐呢)
- 2024-09-18 建立深度学习服务器最简单的方法!快来get新技能吧
- 2024-09-18 Go 每日一库之 jobrunner(github每日一题)
- 2024-09-18 一个非常不错的项目,没有启动步骤文档「伪开源」
- 2024-09-18 渐进式Web应用(PWA)入门教程(上)(渐进式web app)
- 2024-09-18 教程|手把手教你在本地构建Nervos AppChain全家桶
- 2024-09-18 ssh 代理详细解释(ssh全局代理)
- 2024-09-18 数据持久化技术——MP(数据持久化层的主要作用)
- 2024-09-18 前端容易理解错的跨域原理(跨域是前端解决还是后端解决的)
- 1513℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 505℃MySQL service启动脚本浅析(r12笔记第59天)
- 484℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 482℃启用MySQL查询缓存(mysql8.0查询缓存)
- 462℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 442℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 439℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)