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)