vue+gin上传文件
前端
html
1 2 3 4 | <form action= "" method= "post" enctype= "multipart/form-data" > <input id= "fileUpload" type = "file" name= "upload" > <input type = "button" @click= "submitfile" > </form> |
js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | submitfile() { var formData = new FormData() var formData = new window.FormData() formData.append( "f1" ,$( "#fileUpload" )[0].files[0]); console.log(formData) //开始Ajax请求 var options = { // 设置axios的参数 url: this.baseUrl+ '/upload' , data: formData, method: 'post' , headers: { 'Content-Type' : 'multipart/form-data' } } axios(options).then((res) => { console.log(res) }) }, |
后端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | func UploadFile(c *gin.Context){ file, err := c.FormFile( "f1" ) if err != nil { log.Println( "get file failed!" ,err.Error()) c.JSON(http.StatusInternalServerError, gin.H{ "message" : err.Error(), }) return } log.Println(file.Filename) dst := fmt.Sprintf( "F:/go/demo/employ/files/%s" , file.Filename) // 上传文件到指定的目录 c.SaveUploadedFile(file, dst) err = CreateResume(file.Filename) if err!=nil{ c.JSON(http.StatusOK, gin.H{ "message" : fmt.Sprintf( "failed" ), }) return } resume:=GetResumeByName(file.Filename) c.JSON(http.StatusOK, gin.H{ "message" : "success" , "id" :resume.Id, }) } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码