Maison  >  Article  >  développement back-end  >  Comment utiliser un message d'erreur personnalisé dans le téléchargement de fichiers Golang ?

Comment utiliser un message d'erreur personnalisé dans le téléchargement de fichiers Golang ?

WBOY
WBOYoriginal
2024-05-31 12:29:56453parcourir

Lors du traitement des téléchargements de fichiers dans Go, vous pouvez utiliser des types d'erreur personnalisés pour créer des messages d'erreur personnalisés. Voici les étapes : Créez un type d'erreur personnalisé contenant le texte du message d'erreur. Utilisez un type d'erreur personnalisé pour renvoyer un message d'erreur dans votre code de téléchargement de fichier.

Golang 文件上传中如何使用自定义错误消息?

Gestion des téléchargements de fichiers avec des messages d'erreur personnalisés dans Go

Lors de la gestion des téléchargements de fichiers, des messages d'erreur clairs et significatifs sont cruciaux, cela aide au débogage et fournit des commentaires à l'utilisateur. Dans Go, nous pouvons créer des messages d'erreur pour les types d'erreur personnalisés et utiliser ces types pour gérer les erreurs spécifiques qui se produisent lors du téléchargement de fichiers.

Voici comment utiliser les messages d'erreur personnalisés dans Go pour gérer les téléchargements de fichiers :

Créez un type d'erreur personnalisé

Tout d'abord, nous devons créer un type d'erreur personnalisé qui contiendra le texte de notre message d'erreur :

import "fmt"

// FileUploadError represents an error that occurred during file upload.
type FileUploadError struct {
    Message string
}

// Error returns the error message.
func (e *FileUploadError) Error() string {
    return fmt.Sprintf("File upload error: %s", e.Message)
}

Utilisez un type d'erreur personnalisé

Après avoir créé le type d'erreur, vous pouvez l'utiliser dans le code de téléchargement du fichier pour renvoyer un message d'erreur personnalisé :

func uploadFile(file *multipart.FileHeader) error {
    // 检查文件大小
    if file.Size > maxFileSize {
        return &FileUploadError{Message: "File is too large."}
    }

    // 检查文件类型
    if !allowedFileTypes[file.Header.Get("Content-Type")] {
        return &FileUploadError{Message: "Invalid file type."}
    }

    // 上传文件...
}

Cas pratique

Ce qui suit est un cas pratique complet pour démontrer comment pour gérer les téléchargements de fichiers avec des messages d'erreur personnalisés :

import (
    "fmt"
    "github.com/labstack/echo/v4"
    "github.com/labstack/echo/v4/middleware"
    "net/http"
    "os"
)

// FileUploadError represents an error that occurred during file upload.
type FileUploadError struct {
    Message string
}

// Error returns the error message.
func (e *FileUploadError) Error() string {
    return fmt.Sprintf("File upload error: %s", e.Message)
}

func uploadFile(c echo.Context) error {
    // 检查文件大小
    file, err := c.FormFile("file")
    if err != nil {
        return err
    }
    if file.Size > maxFileSize {
        return &FileUploadError{Message: "File is too large."}
    }

    // 检查文件类型
    if !allowedFileTypes[file.Header.Get("Content-Type")] {
        return &FileUploadError{Message: "Invalid file type."}
    }

    // 上传文件...
    f, err := os.OpenFile(file.Filename, os.O_WRONLY|os.O_CREATE, 0666)
    if err != nil {
        return err
    }
    defer f.Close()
    if _, err = f.Write(file.Bytes()); err != nil {
        return err
    }
    return c.JSON(http.StatusOK, map[string]interface{}{
        "status": "success",
    })
}

func main() {
    e := echo.New()
    e.Use(middleware.BodyLimit("10mb"))
    e.POST("/upload", uploadFile)
    e.Logger.Fatal(e.Start(":1323"))
}

Dans l'exemple ci-dessus, nous avons utilisé un FileUploadError type d'erreur personnalisé pour renvoyer un message d'erreur de téléchargement de fichier détaillé et significatif.

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!

Déclaration:
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