我坚持试图找出如何从Angularjs前端既解析PDF文档和JSON数据从一个HTTP请求的形式。 该请求有效载荷是
HTTP请求
内容处置:形状数据; NAME = “文件”; 文件名=“父Handbook.pdf”内容类型:应用/ PDF
内容处置:形状数据; NAME = “DOC”
{ “称号”: “测试”, “猫”: “测试猫”, “日期”:20142323}
“文件”,是pdf和“文档”是我想要解析JSON数据。
我的处理程序可以解析并保存文件就好了,但没有得到什么了JSON。 有任何想法吗?
func (s *Server) PostFileHandler(w http.ResponseWriter, r *http.Request) {
const _24K = (1 << 20) * 24
err := r.ParseMultipartForm(_24K)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
doc := Doc{}
jsonDecoder := json.NewDecoder(r.Body)
fmt.Println(r.Body)
err = jsonDecoder.Decode(&doc)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(doc.Title, doc.Url, doc.Cat, doc.Date)
doc.Id = len(docs) + 1
err = s.db.Insert(&doc)
checkErr(err, "Insert failed")
// files := m.File["myFile"]
for _, fheaders := range r.MultipartForm.File {
for _, hdr := range fheaders {
var infile multipart.File
infile, err = hdr.Open()
// defer infile.Close()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
doc.Url = hdr.Filename
fmt.Println(hdr.Filename)
var outfile *os.File
outfile, err = os.Create("./docs/" + hdr.Filename)
// defer outfile.Close()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
_, err = io.Copy(outfile, infile)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
}
s.Ren.JSON(w, http.StatusOK, &doc)
// http.Error(w, "hit file server", http.StatusOK)
}