ユーザーが r.FormFile("file") を使用してファイルをアップロードすると、multipart.File、multipart.FileHeader、およびエラーが発生します。
私の質問は、アップロードされたファイルに関する情報、たとえばサイズ、画像の場合は寸法などを取得する方法です。
私は文字通りどこから始めればいいのかわからなかったので、どんな助けでも素晴らしいでしょう.
ユーザーが r.FormFile("file") を使用してファイルをアップロードすると、multipart.File、multipart.FileHeader、およびエラーが発生します。
私の質問は、アップロードされたファイルに関する情報、たとえばサイズ、画像の場合は寸法などを取得する方法です。
私は文字通りどこから始めればいいのかわからなかったので、どんな助けでも素晴らしいでしょう.
このタイプのテストで私が見つけたもう 1 つの非常に簡単な方法は、パッケージに関連する test_data ディレクトリにテスト アセットを配置することです。通常、テスト ファイル内で、*http.Request のインスタンスを作成するヘルパーを作成します。これにより、multipart.File でテーブル テストを非常に簡単に実行できます (簡潔にするために、エラー チェックは削除されています)。
func createMockRequest(pathToFile string) *http.Request {
file, err := os.Open(pathToFile)
if err != nil {
return nil
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, err := writer.CreateFormFile("file", filepath.Base(pathToFile))
if err != nil {
return nil
}
_, _ = io.Copy(part, file)
err = writer.Close()
if err != nil {
return nil
}
// the body is the only important data for creating a new request with the form data attached
req, _ := http.NewRequest("POST", "", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
return req
}