Go文件上传的例子

直接上代码:
func upload(w http.ResponseWriter, r *http.Request) {
    fmt.Println("method:", r.Method) //获取请求的方法
    if r.Method == "GET" {
        crutime := time.Now().Unix()
        h := md5.New()
        io.WriteString(h, strconv.FormatInt(crutime, 10))
        token := fmt.Sprintf("%x", h.Sum(nil))

        t, _ := template.ParseFiles("upload.gtpl")
        t.Execute(w, token)
    } else {
        r.ParseMultipartForm(32 << 20)
        file, handler, err := r.FormFile("uploadfile")
        if err != nil {
            fmt.Println(err)
            return
        }
        defer file.Close()
        fmt.Fprintf(w, "%v", handler.Header)
        f, err := os.OpenFile("./test/"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
        if err != nil {
            fmt.Println(err)
            return
        }
        defer f.Close()
        io.Copy(f, file)
    }
}

func main() {
    http.HandleFunc("/", upload)
    err := http.ListenAndServe(":9000", nil)
    if err != nil {
        fmt.Println("error:", err)
    }

}
upload.gtpl文件如下
<html>
<head>
<title>上传文件</title>
</head>
<form enctype="multipart/form-data" action="http://127.0.0.1:9000/upload" method="post">
<input type="file" name="uploadfile" />
<input type="hidden" name="toke" value="{{.}}"/>
<input type="submit" value="upload">
</form>
</body>
</html>
时间: 2024-10-02 03:00:49

Go文件上传的例子的相关文章

HttpClient 4 使用方法的几个例子(代理,StringEntity字符串数据,文件上传)(转载)

1,HttpClient读取页面的使用例子: package com.laozizhu.apache.httpclient; import java.net.Socket; import org.apache.http.ConnectionReuseStrategy; import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apa

java多线程文件上传服务器

描述: (1)jdk自带线程池见 JDK自带线程池配置 (2)此上传文件服务器中上传文件的后缀名通过第一段缓冲字符流传递,此缓冲字符流大小为1024,在文件接收端以1024接收.处理. 1.服务器代码如下(使用jdk自带线程池): 1 /** 2 * 服务器处理多线程问题 3 * 4 * 1.因为服务器是要很多人访问的,因此里面一定要用多线程来处理,不然只能一个人一个人的访问,那还叫Y啥服务器 5 * 6 * 2,拿上面这个文件上传的例子来说,它将每个连接它的用户封装到线程里面去,把用户要执行的

PHP实现文件上传

这是PHP实现文件上传的例子 <html> <head> <meta content="text/html"charset="utf-8"></meta> </head> <body> <form method="post"enctype="multipart/form-data"> <table border="0"

Struts(四)之文件上传、下载

一.文件的上传(拦截器) 1.1.文件上传的条件 表单method必须是post: enctype取值必须是multipart/form-data: 提供文件选择域. 1.2.文件上传的例子 upload1.jsp struts.xml的配置编写 动作类编写 测试: 记得去tomcat的发布目录下查找上传的文件 1.3.文件上传的配置 1.3.1.文件上传的大小限制(2M) 从default.properties文件中 如果超过了默认的大小,upload拦截器就会转向一个input的逻辑视图 如

利用Spring处理文件上传

文件上传有很多中方式,之前写过一个利用DiskFileItemFactory实现文件上传的例子,这次项目中使用了新的方式,通过MultipartHttpServletRequest来获取文件流,下面是我的一个DEMO: 输出方式一: <span style="white-space:pre"> </span>//对request进行包装 MultipartHttpServletRequest multipartRequest = (MultipartHttpSe

jfinal初接触,一个简单的文件上传例子

写了个上传的小例子. 从jfinal官网下载jfinal-1.8_demo_for_jsp.zip 然后下载jfinal-1.8-lib.zip 按要求删掉该删除的,引入一些包,之后的项目结构: DemoConfig.java中配置路由,只留下了根路径: /** * 配置路由 */ public void configRoute(Routes me) { me.add("/", CommonController.class); //me.add("/blog", B

04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

 1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mvc结构 DispatcherServlet:中央控制器,把请求给转发到具体的控制类 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置) handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略 ModelAndView:服务

java 文件上传例子

现在要处理一些CSV格式的数据,就想着把文件上载到服务器上,然后导入mysql,再做后续的处理. 用到了JKD1.7,Servlet 3.0 和 tomcat 7.0.由于Servlet 3.0直接支持文件上传,直接调用方法就好了. 还有一个官方的教程. http://docs.oracle.com/javaee/7/tutorial/doc/servlets016.htm#BABDGFJJ. 按着这个做基本就可以了,但是有两点需要注意: 1 我用的IDE是eclipse,eclipse在运行的

Struts2文件上传例子

一.首先搭建Struts框架 第一步:引入Strusts2所必须的jar包 第二步:创建并配置web.xml文件,在其中配置Struts2的核心过滤器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns