Home > Article > Backend Development > How to use custom error message in Golang file upload?
When handling file uploads in Go, you can use custom error types to create custom error messages. Here are the steps: Create a custom error type that contains the error message text. Use a custom error type in your file upload code to return an error message.
Handling file uploads with custom error messages in Go
Clear and meaningful error messages when handling file uploads Crucially, it helps with debugging and providing feedback to users. In Go, we can create error messages for custom error types and use these types to handle specific errors that occur during file upload.
Here's how to use custom error messages in Go to handle file uploads:
Create a custom error type
First, we need to create A custom error type that will contain the text of our error message:
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) }
Using a custom error type
Once the error type is created, you can add the file upload code Use it to return a custom error message:
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."} } // 上传文件... }
Practical case
The following is a complete practical case that demonstrates how to use custom error messages to handle file uploads:
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")) }
In the above example, we used the FileUploadError
custom error type to return a detailed and meaningful file upload error message.
The above is the detailed content of How to use custom error message in Golang file upload?. For more information, please follow other related articles on the PHP Chinese website!