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
オブジェクトが空の場合、「空のファイルを受信しました」などのエラー メッセージが返されます。 。
場合によっては、 以上がGolang ファイルのアップロードで空のファイル名を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。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
}
// 处理上传文件
// ...
}