Go 파일 업로드에서 빈 파일 이름의 경우 다음 단계를 수행해야 합니다. FormFile 개체가 존재하는지 확인하고 비어 있으면 오류를 반환합니다. 업로드된 파일 이름이 비어 있는지 확인하고 비어 있으면 오류를 반환하는 사용자 정의 파서를 만듭니다.
Golang 파일 업로드에서 빈 파일 이름을 처리하기 위한 지침
Go 언어로 파일 업로드를 처리할 때 사용자가 빈 파일 이름을 제출하는 시나리오가 발생할 수 있습니다. 이로 인해 애플리케이션의 안정성과 사용자 경험에 영향을 미치는 다양한 오류가 발생할 수 있습니다. 이 문제를 해결하기 위해 Golang 파일 업로드에서 빈 파일 이름을 안전하고 효율적으로 처리하는 방법에 대한 가이드가 있습니다.
FormFile
개체 확인 FormFile
对象
在处理上传的文件之前,始终检查 FormFile
对象是否存在。您可以使用 IsZero
方法来检查对象是否为空:
file, header, err := request.FormFile("file") if file.IsZero() { return errors.New("Empty file received") }
如果 FormFile
对象为空,则返回错误消息,例如 "Empty file received"。
自定义解析器
在某些情况下,您可能无法使用 FormFile
对象。在这种情况下,您可以创建一个自定义解析器。解析器会检查上传的文件并返回一个 multipart.FileHeader
업로드된 파일을 처리하기 전에 항상 FormFile
개체가 있는지 확인하세요. IsZero
메서드를 사용하여 개체가 비어 있는지 확인할 수 있습니다.
func parseFile(r *http.Request, key string) (*multipart.FileHeader, error) { if r.MultipartForm == nil { return nil, errors.New("No multipart form found") } file, header, err := r.MultipartForm.File[key] if err != nil { return nil, err } if header.Filename == "" { return nil, errors.New("Empty file received") } return file, nil }
FormFile
개체가 비어 있으면 "빈 파일이 수신되었습니다"와 같은 오류 메시지가 반환됩니다. .
경우에 따라 FormFile
개체를 사용하지 못할 수도 있습니다. 이 경우 사용자 정의 파서를 만들 수 있습니다. 파서는 업로드된 파일을 확인하고 multipart.FileHeader
개체 또는 오류를 반환합니다. func handleFileUpload(w http.ResponseWriter, r *http.Request) {
file, header, err := r.FormFile("file")
if err != nil {
http.Error(w, "Error getting file: "+err.Error(), http.StatusInternalServerError)
return
}
if file.IsZero() {
http.Error(w, "Empty file received", http.StatusBadRequest)
return
}
// 处理上传文件
// ...
}
사용자 지정 파서는 또한 업로드된 파일의 이름이 비어 있는지 확인하고 "비어 있음"과 같은 오류 메시지를 반환합니다. 파일 받았습니다."
위 내용은 Golang 파일 업로드에서 빈 파일 이름을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!