经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
Golang实现web文件共享服务的示例代码
来源:jb51  时间:2018/10/12 9:24:05  对本文有异议

本文主要介绍了Golang实现web文件共享服务的示例代码,分享给大家,具体如下:

很简单,只需要两行代码。

  1. http.Handle("/", http.FileServer(http.Dir("./"))) //把当前文件目录作为共享目录
  2. http.ListenAndServe(":8080", nil)

这时候,通过浏览器打开 http://ip 地址:8080 就可以了。

也许这样就完了,但是我为了方便非程序员用户使用,还需要程序自动获取本机的内网ip地址,最后浏览器自动打开这个地址。

获取内网ip地址

  1. func GetIntranetIp() (r []string) {
  2. addrs, err := net.InterfaceAddrs()
  3. if err != nil {
  4. log.Fatal(err)
  5. }
  6. for _, address := range addrs {
  7. if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
  8. if ipnet.IP.To4() != nil {
  9. r = append(r, ipnet.IP.String())
  10. }
  11. }
  12. }
  13. return
  14. }

本机浏览器自动打开这个地址

  1. loclstr := fmt.Sprintf("http://%s:8080", ip地址)
  2. cmd := exec.Command("cmd", "/C", "start "+loclstr)
  3. cmd.Run()

完整代码

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "log"
  6. "net"
  7. "net/http"
  8. "os/exec"
  9. "time"
  10. )
  11.  
  12. func main() {
  13. address := GetIntranetIp()
  14. fmt.Println("本机ip地址列表:")
  15. for _, item := range address {
  16. fmt.Println(item)
  17. }
  18. http.Handle("/", http.FileServer(http.Dir("./")))
  19. fmt.Printf("蕊蕊老师文件共享服务开启,监听8080端口\n请使用浏览器打开:http://ip地址:8080,eg:http://%s:8080\n请不要关闭此程序,祝使用愉快\n", address[0])
  20. go func() {
  21. time.Sleep(2000)
  22. loclstr := fmt.Sprintf("http://%s:8080", address[0])
  23. cmd := exec.Command("cmd", "/C", "start "+loclstr)
  24. cmd.Run()
  25. }()
  26. if err := http.ListenAndServe(":8080", nil); err != nil {
  27. fmt.Println("err:", err)
  28. }
  29. }
  30.  
  31. func GetIntranetIp() (r []string) {
  32. addrs, err := net.InterfaceAddrs()
  33. if err != nil {
  34. log.Fatal(err)
  35. }
  36. for _, address := range addrs {
  37. if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
  38. if ipnet.IP.To4() != nil {
  39. r = append(r, ipnet.IP.String())
  40. }
  41. }
  42. }
  43. return
  44. }
  45.  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号