go 服务端读取文件

1, 读取单个文件

func extractFace(w http.ResponseWriter, req *http.Request) {
	crossdomain(w, req)

	//parse json
	//body, err := ioutil.ReadAll(req.Body)
	//	if err != nil {
	//		log.Error("in streamsTrans read body error:%s" + err.Error())
	//		//respond2client(NOK_READ_REQ, "read http req body failed", w)
	//		return
	//	}

	//out := ConvertToString(string(body), "GB2312", "UTF-8")
	//log.Debug("body:%s", body)
	//log.Debug("out:%s", out)

	fmt.Println("method:", req.Method) //获取请求的方法
	if req.Method != "POST" {
		//should be
		log.Warn("wrong method")
		return
	} else {
		req.ParseMultipartForm(128 << 20)
		file, handler, err := req.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)
		///////////////////////////////

	}

}

2,读取批量文件

		fhs := req.MultipartForm.File["uploadfile"]
		optionDirs := make([]string, 0)
		log.Debug("fhs:%d", len(fhs))
		for i := 0; i < len(fhs); i++ {
			file, err := fhs[i].Open()
			if err != nil {
				log.Error("open file with error: %s", err.Error())
				panic(err)

			}
			filename := fhs[i].Filename
			//fileheader := fhs[i].Header
			log.Debug("filename %s", filename)
			f, err := os.OpenFile("./test/"+filename, os.O_WRONLY|os.O_CREATE, 0666)
			if err != nil {
				log.Error("open  with error: %s", err.Error())
				panic(err)
			}
			defer f.Close()
			io.Copy(f, file)
			optionDirs = append(optionDirs, filename)
		}
		log.Debug("optionDirs: %#v", optionDirs)

猜你喜欢

转载自blog.csdn.net/qiuyoujie/article/details/80177358