Golang 实现简单的文件上传
2017-01-04 20:42
411 查看
示例代码:
package main import ( "fmt" "io" "net/http" "os" ) const ( upload_path string = "./upload/" ) func load_success(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "上传成功!") } //上传 func uploadHandle(w http.ResponseWriter, r *http.Request) { //从请求当中判断方法 if r.Method == "GET" { io.WriteString(w, "<html><head><title>上传</title></head>"+ "<body><form action='#' method=\"post\" enctype=\"multipart/form-data\">"+ "<label>上传图片</label>"+":"+ "<input type=\"file\" name='file' /><br/><br/> "+ "<label><input type=\"submit\" value=\"上传图片\"/></label></form></body></html>") } else { //获取文件内容 要这样获取 file, head, err := r.FormFile("file") if err != nil { fmt.Println(err) return } defer file.Close() //创建文件 fW, err := os.Create(upload_path + head.Filename) if err != nil { fmt.Println("文件创建失败") return } defer fW.Close() _, err = io.Copy(fW, file) if err != nil { fmt.Println("文件保存失败") return } //io.WriteString(w, head.Filename+" 保存成功") http.Redirect(w, r, "/success", http.StatusFound) //io.WriteString(w, head.Filename) } } func main() { fmt.Println("OK!") //启动一个http 服务器 http.HandleFunc("/success", load_success) //上传 http.HandleFunc("/upload", uploadHandle) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("服务器启动失败") return } fmt.Println("服务器启动成功") }
和Java语言相比,go语言程序更加简洁、轻便;并发性好;良好的语言设计和拥有较好的执行性能。
相关文章推荐
- golang简单获取上传文件大小的实现代码
- golang简单获取上传文件大小的实现代码
- golang实现文件上传权限验证(超简单)
- Golang实现简单的文件上传
- Java动态显示文件上传进度的简单实现
- 文件上传原理简单实现
- Linux下基于C实现的socket简单文件上传实例
- Asp.net中文件上传下载的简单实现
- 简单SHELL脚本实现FTP上传文件
- ASP.NET中实现简单文件上传
- VC FTP上传文件 简单实现
- Java动态显示文件上传进度的简单实现
- 一个简单的struts实现文件上传示例
- PHP实现简单的文件上传
- 用socket自定义简单协议实现文件上传与接受
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- 简单的Sturts上传文件实现
- Java动态显示文件上传进度的简单实现 - java2000.net的专栏 - CSDNBlog
- 简单实用的PHP程序实现文件上传
- JSP实现简单的文件上传