Я хочу вызвать функцию (os.Remove
) после успешной загрузки файла.
Я пытаюсь создать конечную точку для одноразовой загрузки файла, которая удаляет файл сразу после загрузки.
Могу ли я вызвать функцию сразу после w.Write(data)
? Что делать, если загрузка не удалась?
Мой обработчик выглядит примерно так:
func oneTimeFileDownloadHandler(w http.ResponseWriter, r *http.Request) {
filename, mimetype, data := getFile(r)
w.Header().Set("Content-Disposition", fmt.Sprintf(`attachment;filename="%s"`, filename))
w.Header().Set("Content-Type", mimetype)
if _, err := w.Write(data); err != nil {
http.Error(w, fmt.Sprintf("error writing download data: %s", err), http.StatusInternalServerError)
return
}
os.Remove(filename)
}