>  기사  >  백엔드 개발  >  Go의 멀티파트 양식에서 개별 필드에 대한 사용자 정의 Content-Type 헤더를 어떻게 설정할 수 있나요?

Go의 멀티파트 양식에서 개별 필드에 대한 사용자 정의 Content-Type 헤더를 어떻게 설정할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-10-29 19:20:03231검색

How can I set custom Content-Type headers for individual fields in a multipart form in Go?

Go에서 다중 부분 양식의 콘텐츠 유형 헤더를 편집하는 방법

Go에서는 콘텐츠 유형을 수정해야 할 수도 있습니다. 멀티파트 양식의 특정 필드에 대한 헤더입니다. mime/multipart 패키지를 사용하면 다중 부분 양식을 쉽게 생성할 수 있지만 개별 필드에 대해 Content-Type 헤더를 설정하는 직접적인 방법을 제공하지는 않습니다.

이 제한을 극복하려면 다음과 같은 사용자 정의 기능을 구현할 수 있습니다. 다음:

<code class="go">import (
    "mime/multipart"
    "text/template"
)

func CreateAudioFormFile(writer *multipart.Writer, filename string) (io.Writer, error) {
    h := make(textproto.MIMEHeader)
    h.Set("Content-Disposition", fmt.Sprintf(`form-data; name="%s"; filename="%s"`, "file", filename))
    h.Set("Content-Type", "audio/wav;rate=8000")
    return writer.CreatePart(h)
}</code>

이 함수를 사용하면 원하는 Content-Type 헤더가 있는 양식 필드를 생성할 수 있습니다.

<code class="go">writer2 := multipart.NewWriter(buf)
audioFile, _ := CreateAudioFormFile(writer2, "helloWorld.wav")
io.Copy(audioFile, file)</code>

이 코드는 다음 헤더가 있는 다중 부분 양식을 생성합니다.

--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732
Content-Disposition: form-data; name="file"; filename="helloWorld.wav"
Content-Type: audio/wav;rate=8000
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--

제공된 원본 예제와 같이 파일 데이터를 생성한 후 필드에 쓰는 것을 잊지 마세요.

위 내용은 Go의 멀티파트 양식에서 개별 필드에 대한 사용자 정의 Content-Type 헤더를 어떻게 설정할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.