Я новичок в Golang, и сейчас я пишу небольшое приложение, которое анализирует некоторые страницы.
Я получил индексную страницу:
<form action="/" method='POST'>
Enter credentials:<br>
Login: <input type="text" name="login" >
<br>
Password: <input type="password" name="password" >
<br>
Search link:<br>
<input type="text" name="link" >
<br>
<input type="submit" value="Submit">
</form>
Таким образом, после нажатия кнопки «Отправить» он переходит на страницу анализа (используя tebeca / selenium pkg) и в конце записывает данные в файл result.csv, как
func writeToCSV(users []linkedinUser) {
data := users
enc := struct2csv.New()
rows, err := enc.Marshal(data)
if err != nil {
fmt.Printf("ERROR marshaling file, %s", err)
}
file, err := os.Create("result.csv")
if err != nil {
fmt.Printf("ERROR creating file, %s", err)
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
for _, value := range rows {
err := writer.Write(value)
if err != nil {
fmt.Printf("ERROR writing file, %s", err)
}
}
И в итоге я получил файл result.csv в /home/username/go/src/parser/parsertool/src/result.csv
my main.go
func main() {
r := mux.NewRouter()
r.HandleFunc("/", indexHandler)
http.Handle("/", r)
err := http.ListenAndServe(":3000", nil) // setting listening port
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
func indexHandler(w http.ResponseWriter, r *http.Request) {
t, _ := template.ParseFiles("./front/index.html")
badLoginT, _ := template.ParseFiles("./front/error.html")
r.ParseForm()
login := r.PostFormValue("login")
password := r.PostFormValue("password")
link := r.PostFormValue("link")
if login != "" || password != "" {
userCred := logincredentials.SetCredentials(login, password)
if logincredentials.CheckCredentials(userCred) && link != "" {
crawler.Crawl(link, login, password)
} else {
badLoginT.Execute(w, nil)
}
}
t.Execute(w, nil)
}
Итак, главный вопрос:
Есть ли способ получить ссылку для загрузки result.csv на мой жесткий диск?
Реализация не важна. Может быть в конце writeToCSV () , когда result.csv будет готов, появится окно, в котором вы можете выбрать место для сохранения файла, или после получения result.csv появится какая-нибудь ссылка типа «Нажмите, чтобы скачать». после нажатия появляется окно загрузки и т. д.
Я застрял и действительно не знаю, как реализовать загрузку.
Буду благодарен за любую помощь.