我正在使用 wish 和 bubbletea 创建一个应用程序并通过 ssh 发送它。该应用程序只有我所做的事情,一个 github 链接,以及我所坚持的一点,一个下载。然后它将转到 https://raw.githubusercontent.com///main/ 或者它将转到releases。它将获取数据,然后通过 ssh 将其发送到客户端,我可以看到文件的内容以文本形式显示在客户端上。但我不知道如何在用户端创建一个文件并将文件的内容放入其中。我在互联网上找不到有关从服务器发送到客户端的任何内容,仅将客户端发送到服务器。我只是不知道如何在客户端执行代码(创建文件并将数据放入其中)。有什么解决办法吗?预先感谢。
func (m *model) downloadFile(url string) {
// Get the file from the URL
resp, err := http.Get(url)
if err != nil {
m.status = fmt.Sprintf("Failed to download: %v\n", err)
m.Session.Write([]byte(m.status))
return
}
defer resp.Body.Close()
// Check if the request succeeded
if resp.StatusCode != http.StatusOK {
m.status = fmt.Sprintf("HTTP Error: %v\n", resp.Status)
m.Session.Write([]byte(m.status))
return
}
// Notify user of file transfer
m.Session.Write([]byte("Starting file transfer..."))
// Copy file data to the SSH session
_, err = io.Copy(m.Session, resp.Body)
if err != nil {
m.status = fmt.Sprintf("Error sending file: %v\n", err)
m.Session.Write([]byte(m.status))
return
}
// Notify the user that the transfer is complete
m.Session.Write([]byte("\nFile transfer complete!\n"))
m.status = "Download completed!\n"
}
您不能“强制”在客户端创建文件。您应该创建一个下载可能性,客户端可以下载他的“内容”。