Go\의 다중 부분 양식에서 개별 양식 필드의 콘텐츠 유형을 사용자 정의하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-27 10:23:03
원래의
887명이 탐색했습니다.

How to Customize Content-Type for Individual Form Fields in Go's Multipart Form?

Go에서 다중 부분 양식 필드의 콘텐츠 유형 사용자 정의

이 질문은 다중 부분 내 개별 양식 필드의 콘텐츠 유형 사용자 정의와 관련이 있습니다. Go mime/multipart 패키지를 사용하여 생성된 양식입니다. 원본 코드는 멀티파트 형식을 생성하지만 기본 "application/octet-stream" 콘텐츠 유형을 가정합니다. 목표는 오디오 파일의 경우 "audio/wav;rate=8000"과 같이 특정 필드에 대해 특정 Content-Type을 설정하는 것입니다.

네이티브 mime/multipart 패키지는 설정에 대한 명시적인 지원을 제공하지 않습니다. 개별 필드의 Content-Type. 그러나 이를 달성하기 위해 사용자 정의 구현을 사용할 수 있습니다.

<code class="go">func CreateAudioFormFile(w *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 w.CreatePart(h)
}</code>
로그인 후 복사

이 함수는 원하는 콘텐츠 유형으로 새 양식 부분을 생성합니다. 이 함수를 사용하도록 원본 코드를 수정할 수 있습니다.

<code class="go">audioFile, _ := CreateAudioFormFile(writer, "helloWorld.wav")
io.Copy(audioFile, file)</code>
로그인 후 복사

이제 API는 오디오 파일에 적합한 Content-Type이 포함된 멀티파트 형식을 수신합니다. 결과 양식 데이터는 다음과 유사합니다.

--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732
Content-Disposition: form-data; name="file"; filename="helloWorld.wav"
Content-Type: audio/wav;rate=8000
[audio file data]
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--
로그인 후 복사

위 내용은 Go\의 다중 부분 양식에서 개별 양식 필드의 콘텐츠 유형을 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!