If I understand correctly, you receive "bodyBytes", store it in a file, and later want to serve it. Then a `w.Write(b)` would suffice. Or without reading the whole file into memory: `io.Copy(w, file)`.
[email protected] a következőt írta (2021. március 2., kedd, 14:12:22 UTC+1): > Here is what I have tried. > > type product struct { > ID int `json:"id"` > Description string `json:"description"` > Price float64 `json:"price"` > Bin string `json:"bin"` > Qoh int `json:"qoh"` > } > // ********* function to save data to a file *********// > func saveBackup(w http.ResponseWriter, r *http.Request) { > > type Resp struct { > Message string `json:"message"` > Affected string `json:"affected"` > } > resp:= Resp{} > > > for k, v := range r.URL.Query() { > kee = k > val = v[0] > } > fileName := val // r.FormValue("filename") > > bodyBytes, err := ioutil.ReadAll(r.Body) > > var items product > json.Unmarshal(bodyBytes, &items) > fmt.Printf("%+v\n",items) > f, err := os.Create(fileName) > if err != nil { > fmt.Println(err) > return > } > l, err := f.Write(bodyBytes) > if err != nil { > fmt.Println(err) > f.Close() > return > } > fmt.Println(l, "bytes written successfully") > err = f.Close() > if err != nil { > fmt.Println(err) > return > } > resp.Message = "Save successful" > resp.Affected = "Saved" > respondWithJSON(w, http.StatusOK, resp) > > } > > //******** Retrieving the file ********** // > > func getBackup(w http.ResponseWriter, r *http.Request) { > > kee := "" > fileName := "" > for k, v := range r.URL.Query() { > kee = k > fileName = v[0] > } > var lines []product <=== []string - had this prior to scan Text > > file, err := os.Open(fileName) > if err != nil { > log.Fatal(err) > } > defer func() { > if err = file.Close(); err != nil { > log.Fatal(err) > } > }() > > // scanner := bufio.NewScanner(file) > // for scanner.Scan() { > // lines = append(lines, scanner.Text()) > // } > b, err := ioutil.ReadFile(file) > append(lines, b) <== I know this is wrong > > response, _ := json.Marshal(lines) > > w.Header().Set("Content-Type", "application/json") > w.WriteHeader(http.StatusOK) > w.Write(response) > > } > > How can I return the result as a JSON file to the requesting application? > The client application parses the result to load into an array. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/fc777ba8-980d-4569-bcce-1567a3d90becn%40googlegroups.com.
