golang 實作檔案下載
在網路時代,我們離不開檔案的下載,但很少人會關心檔案下載的具體實作過程。今天我們來介紹一下golang如何實作檔案下載。
為方便展示,我們選擇一個網路上的可用文件,假設我們需要下載的文件的位址為:http://files.saas.hand-china.com/java/sales-hardware-management .pdf
首先,我們需要引入golang內建的http套件和os套件:
import ( "fmt" "net/http" "os" )
接著,我們可以透過http.Get的方式取得需要下載的檔案的回應結果:
response, err := http.Get(url) if err != nil { fmt.Println("Error fetching response. ", err) return } defer response.Body.Close()
要注意的是,在取得回應結果後,我們需要在適當的時候關閉response.Body。
接下來,我們可以透過os.Create建立需要儲存的檔案:
out, err := os.Create(filepath) if err != nil { fmt.Println("Error creating file. ", err) return } defer out.Close()
其中,filepath是我們需要儲存的檔案的路徑。
最後,我們可以透過io.Copy將回應結果寫入到剛才建立的檔案:
_, err = io.Copy(out, response.Body) if err != nil { fmt.Println("Error saving file. ", err) return } fmt.Println("File saved successfully.")
完整的golang程式碼如下:
package main import ( "fmt" "io" "net/http" "os" ) func main() { url := "http://files.saas.hand-china.com/java/sales-hardware-management.pdf" filepath := "sales-hardware-management.pdf" response, err := http.Get(url) if err != nil { fmt.Println("Error fetching response. ", err) return } defer response.Body.Close() out, err := os.Create(filepath) if err != nil { fmt.Println("Error creating file. ", err) return } defer out.Close() _, err = io.Copy(out, response.Body) if err != nil { fmt.Println("Error saving file. ", err) return } fmt.Println("File saved successfully.") }
以上就是golang實現文件下載的簡要介紹與示範,相信有了這個例子,大家對於文件下載的實現過程會有更深入的認識。
以上是golang 實作文件下載的詳細內容。更多資訊請關注PHP中文網其他相關文章!