Maison > développement back-end > Golang > Comment un débutant Go peut-il télécharger et enregistrer efficacement des images à partir d'une URL ?

Comment un débutant Go peut-il télécharger et enregistrer efficacement des images à partir d'une URL ?

DDD
Libérer: 2024-12-08 19:00:13
original
1046 Les gens l'ont consulté

How Can a Go Beginner Efficiently Download and Save Images from a URL?

Enregistrement d'images à partir d'URL

Question :

En tant que novice en Go, comment puis-je Je récupère une image à partir d'une URL et l'enregistre localement ?

Initial Approche :

Le code fourni tente de décoder l'image à l'aide de image.Decode, qui est conçu pour décoder les fichiers image. Cependant, les données récupérées doivent plutôt être traitées comme des octets bruts.

Approche mise à jour :

Pour enregistrer l'image directement à partir de l'URL, nous pouvons utiliser ioutil.ReadFrom pour copiez le corps de la réponse, qui contient les données de l'image, dans un fichier local.

Voici le texte modifié code :

package main

import (
    "fmt"
    "io"
    "io/ioutil"
    "log"
    "net/http"
    "os"
)

func main() {
    url := "http://i.imgur.com/m1UIjW1.jpg"

    response, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer response.Body.Close()

    file, err := os.Create("/images/asdf.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    _, err = io.Copy(file, response.Body)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Image saved successfully!")
}
Copier après la connexion

Explication :

  • Le corps de la réponse HTTP est traité comme un flux d'octets.
  • io.Copy est utilisé pour transférer les octets du flux vers le fichier local.
  • En fonction de la taille du fichier, le transfert peut potentiellement prendre du temps, mais c'est une approche efficace pour gérer des images volumineuses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal