github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/mime/multipart/writer.go (about) 1 // Copyright 2011 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package multipart 6 7 import ( 8 "github.com/shogo82148/std/io" 9 "github.com/shogo82148/std/net/textproto" 10 ) 11 12 // Writerはマルチパートメッセージを生成します。 13 type Writer struct { 14 w io.Writer 15 boundary string 16 lastpart *part 17 } 18 19 // NewWriterは、ランダムな境界を持つ新しいマルチパート [Writer] を返し、wに書き込みます。 20 func NewWriter(w io.Writer) *Writer 21 22 // Boundaryは [Writer] の境界を返します。 23 func (w *Writer) Boundary() string 24 25 // SetBoundaryは、[Writer] のデフォルトのランダムに生成された 26 // 境界セパレータを明示的な値で上書きします。 27 // 28 // SetBoundaryはパートが作成される前に呼び出す必要があり、特定のASCII文字のみを 29 // 含むことができ、非空であり、最大で70バイトの長さでなければなりません。 30 func (w *Writer) SetBoundary(boundary string) error 31 32 // FormDataContentTypeは、この [Writer] のBoundaryを持つHTTP 33 // multipart/form-dataのContent-Typeを返します。 34 func (w *Writer) FormDataContentType() string 35 36 // CreatePartは、提供されたヘッダーを持つ新しいマルチパートセクションを作成します。 37 // パートのボディは、返された [Writer] に書き込むべきです。 38 // CreatePartを呼び出した後、以前のパートにはもう書き込むことができません。 39 func (w *Writer) CreatePart(header textproto.MIMEHeader) (io.Writer, error) 40 41 // CreateFormFileは、[Writer.CreatePart] の便利なラッパーです。これは、 42 // 提供されたフィールド名とファイル名で新しいform-dataヘッダーを作成します。 43 func (w *Writer) CreateFormFile(fieldname, filename string) (io.Writer, error) 44 45 // CreateFormFieldは、与えられたフィールド名を使用してヘッダーを作成し、 46 // [Writer.CreatePart] を呼び出します。 47 func (w *Writer) CreateFormField(fieldname string) (io.Writer, error) 48 49 // WriteFieldは [Writer.CreateFormField] を呼び出し、その後で与えられた値を書き込みます。 50 func (w *Writer) WriteField(fieldname, value string) error 51 52 // Closeはマルチパートメッセージを終了し、終了境界線を出力に書き込みます。 53 func (w *Writer) Close() error