我有這樣的模板(upload.tmpl.html):<html><body> <div class="container"> <ul> <li>current fileName : {{ .fileName}} </li> </ul> </body></html>的處理程序uploadHandler.go與func UploadHandler(c *gin.Context) { file, header, err := c.Request.FormFile("file-upload") if err != nil { log.Fatal("Erreur dans la récupération de fichier") } //... fileName := make(chan string) go ReadCsvFile(bytes, fileName) go func() { for { log.Info(<-fileName) } }() c.HTML(http.StatusOK, "upload.tmpl.html", gin.H{ "fileName": <-fileName, })}和這樣的ReadCsvFile()方法:func ReadCsvFile(bytesCSV []byte, fileName chan string) { r := bytes.NewReader(bytesCSV) reader := csv.NewReader(r) reader.Comma = ';' records, err := reader.ReadAll() if err != nil { fmt.Println("Error:", err) return } db, _ := databaseApp.OpenDatabase() defer db.Close() for _, record := range records { fileName <- record[0] product := &em.Product{ Name: record[0], //... } db.Create(product) } fileName <- "done"}我嘗試在模板中顯示每一行的當(dāng)前文件名,但是可以像這樣將通道綁定到模板中嗎?因為這樣頁面就不再加載了。
1 回答

守著星空守著你
TA貢獻1799條經(jīng)驗 獲得超8個贊
使用網(wǎng)絡(luò)套接字。這里有些例子:
HTML/JavaScript:
<script>
var ws= new WebSocket("ws://yoursite.com");
ws.onmessage = function (event) {
console.log(event.data);
// $('#your-element').html(event.data);
}
</script>
去網(wǎng)絡(luò)套接字:
func websocketSenderHandler(conn *websocket.Conn){
for {
msg := <- globalChannel
conn.WriteMessage(websocket.TextMessage, msg)
}
}
Go 中的更多 Websocket:golang.org/x/net/websocket
其他示例:https : //github.com/golang-samples/websocket
- 1 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消