大佬教程收集整理的这篇文章主要介绍了Go语言实现简单的登录和文件上传,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最近学习Go Web编程,先学了个基础的登录和文件上传,使用的是Go语言自带的net/http包
Go语言处理请求非常简单,调用http.ListenAndServe函数,监听对应端口,然后http.HandleFunc函数根据请求路径调用不同函数
主函数如下
func main() { http.HandleFunc("/",handlerequest) http.HandleFunc("/login",login) http.HandleFunc("/upload",upload) //监听8080端口 err:=http.ListenAndServe(":8080",nil) if err!=nil{ log.Fatal("err:",err) } }
@H_489_9@先po上咱用的html文件:login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <form action="http://localhost:8080/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="登录"> </form> <br> 上传文件 <form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data"> <input type="file" name="uploadfile"/> <input type="submit" value="upload"> </form> </body> </html>
@H_489_9@先看login方法
func login(w http.ResponseWriter,r *http.request){ fmt.Println("method",r.Method) if r.Method =="GET"{ t,_:=template.ParseFiles("login.html") t.Execute(w,nil) }else{ r.ParseForm() fmt.Println("username",r.Form["username"]) fmt.Println("password",r.Form["password"]) fmt.Fprintf(w,"登录成功") } }
@H_489_9@拿到请求r后,判断是什么请求方法,如果是get方法,返回login.html文件
如果是post方法,代表这是进行登录操作了,然后使用ParesForm()方法,@R_673_10377@会解析出r.Form和r.PoatForm,不先调用@R_673_10377@,是获取不到表单中的值的
r.Form底层是一个map,所以可以用表单中的name来获取value
控制台输出
这里的123d都是我乱打进去的再看upload方法
func upload(writer http.ResponseWriter, r *http.request) { r.ParseMultipartForm(32<<10) file,handler,err:=r.FormFile("uploadfile") if err!=nil{ fmt.Fprintf(writer,"上传出错") fmt.Println(err) return } defer file.Close() f,err:=os.OpenFile("./test"+handler.Filename,os.O_WRONLY|os.O_CREATE,0666) if err!=nil{ fmt.Println(err) fmt.Fprintf(writer,"上传出错") return } defer f.Close() io.Copy(f,filE) fmt.Fprintf(writer,"上传成功") }
@H_489_9@ParseMultipartForm()这个函数是解析上传来的文件的,参数交maxMemory,文件小与等于maxMemory的部分存在内存中,多出的部分存在系统的临时文件中。它在必要情况下,会调用一下ParseForm(),解析请求提
FormFile返回我们一个文件File类型的对象,就是上传的文件,handler是里面是文件的一些信息
os.OpenFile函数开启一个我们将写入的文件,os.O_WRONLY|os.O_CREATE代表的是打开模式,以只写模式打开,并且文件不存在就创建一个,0666代表的是文件模式,有读写权限
然后就没什么难懂的了。
看我演示
选择一个图片
点击上传,成功了 看目录里面已经有了这个图片大佬总结
以上是大佬教程为你收集整理的Go语言实现简单的登录和文件上传全部内容,希望文章能够帮你解决Go语言实现简单的登录和文件上传所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。