Mercurial > mercurial > hgweb_rsearcher.cgi
comparison go/server.go @ 4:06342fc544e4
mouse gesture.
| author | pyon@macmini |
|---|---|
| date | Mon, 15 Oct 2018 20:07:38 +0900 |
| parents | db4813125eb8 |
| children | 82f9af6aa7e4 |
comparison
equal
deleted
inserted
replaced
| 3:db4813125eb8 | 4:06342fc544e4 |
|---|---|
| 1 /* | 1 /* |
| 2 server.go : server-program. | 2 server.go : server-program. |
| 3 Version : 1.0 | 3 Version : 1.1 |
| 4 Last Change: 2018-10-03 水 10:22:04. | 4 Last Change: 2018-10-12 金 14:37:48. |
| 5 | 5 |
| 6 install to: server_root/ | 6 install to: server_root/ |
| 7 | 7 |
| 8 server_root/server | 8 server_root/server |
| 9 + db/ | 9 + db/ |
| 24 ) | 24 ) |
| 25 | 25 |
| 26 var server string | 26 var server string |
| 27 var port string | 27 var port string |
| 28 var server_root string | 28 var server_root string |
| 29 var version string | |
| 29 | 30 |
| 30 func init() { | 31 func init() { |
| 31 port = ":3910" | 32 port = ":3910" |
| 32 server_root = filepath.Dir( os.Args[0] ) | 33 server_root = filepath.Dir( os.Args[0] ) |
| 34 version = "1.1" | |
| 33 } | 35 } |
| 34 | 36 |
| 35 func main() { | 37 func main() { |
| 36 | 38 |
| 37 // setting IP-Address & Port | 39 // setting IP-Address & Port |
| 46 } | 48 } |
| 47 } | 49 } |
| 48 } | 50 } |
| 49 | 51 |
| 50 // start Web-server | 52 // start Web-server |
| 51 fmt.Println( "server start [", server, "]" ) | 53 fmt.Println( "server start [", server, "] ( program version", version, ")" ) |
| 52 http.HandleFunc( "/", handler ) | 54 http.HandleFunc( "/", handler ) |
| 55 http.HandleFunc( "/upload", upload_handler ) | |
| 53 log.Fatal( http.ListenAndServe( server, nil ) ) | 56 log.Fatal( http.ListenAndServe( server, nil ) ) |
| 54 } | 57 } |
| 55 | 58 |
| 56 func handler( w http.ResponseWriter, r *http.Request ) { | 59 func handler( w http.ResponseWriter, r *http.Request ) { |
| 57 file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) ) | 60 file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) ) |
| 62 return | 65 return |
| 63 } | 66 } |
| 64 defer f.Close() | 67 defer f.Close() |
| 65 io.Copy( w, f ) | 68 io.Copy( w, f ) |
| 66 } | 69 } |
| 70 | |
| 71 func upload_handler( w http.ResponseWriter, r *http.Request ) { | |
| 72 fmt.Println( "[access]", r.RemoteAddr, "|", time.Now().Format( "2006-01-02 15:04" ), "|", "/upload" ) | |
| 73 now := time.Now().Format( "20060102_150405" ) | |
| 74 file := filepath.Join( server_root, "upload", now ) | |
| 75 f, err := os.Create( file ) | |
| 76 if err != nil { | |
| 77 http.NotFound( w, r ) | |
| 78 return | |
| 79 } | |
| 80 n, err := io.Copy( f, r.Body ) | |
| 81 if err != nil { | |
| 82 http.NotFound( w, r ) | |
| 83 return | |
| 84 } | |
| 85 f.Close() | |
| 86 w.Write( []byte( fmt.Sprintf( "%d bytes are recieved.\n", n ) ) ) | |
| 87 } | |
| 88 |
