>  기사  >  백엔드 개발  >  Golang은 파일 다운로드를 구현합니다.

Golang은 파일 다운로드를 구현합니다.

王林
王林원래의
2023-05-14 20:08:382760검색

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()

응답 결과를 얻은 후에는 적절한 시간에 응답 본문을 닫아야 합니다.

다음으로 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.")
}

위는 파일 다운로드 I의 golang 구현에 대한 간략한 소개 및 데모입니다. 예를 들어, 모든 사람이 파일 다운로드 구현 프로세스에 대해 더 깊이 이해하게 될 것이라고 믿습니다.

위 내용은 Golang은 파일 다운로드를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.