مایم شبکه net/mime
نوع رسانهی پروندهها، سرآیند Content-Type و بدنهی چندبخشی فرم.
واردسازی شبکه.مایم شبکه
نوع رسانه (MIME) به مرورگر و برنامهها میگوید محتوا چیست، مثل image/png. این بسته نوع را از پسوند پرونده پیدا میکند و سرآیند Content-Type را میخواند.
فرمهایی که پرونده بارگذاری میکنند بدنهی multipart/form-data میفرستند: چند بخش با یک مرز میانشان. تجزیه چندبخشی آن را میخواند و نویسنده چندبخشی آن را میسازد.
گونهها
پارامتر نوع محتوا ContentTypeParam
ساختار پارامتر نوع محتوا| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| key | key | رشته = "" | نام، با حروف کوچک. |
| value | value | رشته = "" | مقدار. |
واردسازی شبکه.مایم شبکه
روال ریشه:
سرچاپ مایم شبکه.پسوند مایم("png")، مایم شبکه.پسوند مایم("json")، مایم شبکه.پسوند مایم(".png")
سرچاپ مایم شبکه.رده مایم("/site/index.html")، مایم شبکه.رده مایم("style.css")
سرچاپ مایم شبکه.متن وضعیت(۲۰۰)، مایم شبکه.متن وضعیت(۴۰۴)، مایم شبکه.متن وضعیت(۵۰۳)
ن := مایم شبکه.تجزیه نوع محتوا("text/html; charset=UTF-8; q=0.9")
سرچاپ ن.media_type، ن.params.items.طول()، مایم شبکه.دریافت پارامتر(ن، "charset")، ن.params.items[۱].key، ن.params.items[۱].value
پایانپارامترهای نوع محتوا ContentTypeParams
ساختار پارامترهای نوع محتوا| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<پارامتر نوع محتوا> | پارامترها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
نوع محتوا ContentType
ساختار نوع محتواContent-Type تجزیهشده.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| media_type | media_type | رشته = "" | نوع رسانه، با حروف کوچک. |
| params | params | پارامترهای نوع محتوا | پارامترها، مثل charset. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
سرآیند بخش MultipartHeader
ساختار سرآیند بخش| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| key | key | رشته = "" | نام. |
| value | value | رشته = "" | مقدار. |
واردسازی شبکه.مایم شبکه
واردسازی فشرده سازی
واردسازی رشته
روال ریشه:
ناپایا ن := مایم شبکه.نویسنده چندبخشی جدید()
سرچاپ رشته.شروع با(مایم شبکه.سرآیند نوع محتوا(ن)، "multipart/form-data; boundary=")
مایم شبکه.نوشتن فیلد(ن، "name"، "مریم")
مایم شبکه.نوشتن پرونده متنی(ن، "note"، "note.txt"، "text/plain"، "سلام")
داده := فشرده سازی.بافر از رشته("PNG")
مایم شبکه.نوشتن پرونده(ن، "pic"، "a.png"، "image/png"، داده.data، داده.len)
بدنه := مایم شبکه.بستن نویسنده(ن)
سرچاپ ن.closed، بدنه.len > ۰
بخشها := مایم شبکه.تجزیه چندبخشی(بدنه.data، بدنه.len، ن.boundary)
هر ب در بخشها.items:
سرچاپ ب.name، "[" + ب.filename + "]"، "[" + ب.content_type + "]"، فشرده سازی.بافر به رشته(ب.body)، ب.headers.items.طول()
پایان
سرچاپ بخشها.items[۱].headers.items[۰].key
پایانسرآیندهای بخش MultipartHeaders
ساختار سرآیندهای بخش| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<سرآیند بخش> | سرآیندها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
بخش چندبخشی MultipartPart
ساختار بخش چندبخشی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| name | name | رشته = "" | نام فیلد فرم. |
| filename | filename | رشته = "" | نام پرونده، اگر بخش پرونده باشد. |
| content_type | content_type | رشته = "" | نوع محتوای بخش. |
| headers | headers | سرآیندهای بخش | همهی سرآیندهای بخش. |
| body | body | compress.ByteBuf | محتوای بخش. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
بخشهای چندبخشی MultipartParts
ساختار بخشهای چندبخشی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<بخش چندبخشی> | بخشها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
نویسنده چندبخشی MultipartWriter
ساختار نویسنده چندبخشی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| boundary | boundary | رشته = "" | مرز تصادفی میان بخشها. |
| buf | buf | compress.ByteBuf | بدنهی ساختهشده. |
| closed | closed | منطقی = نادرست | آیا بسته شده. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
روالها
پسوند مایم MimeExt
روال پسوند مایم(ext: رشته): رشتهpng؛ برای پسوند ناشناخته application/octet-stream.نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
رده مایم MimeType
روال رده مایم(p: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
متن وضعیت StatusText
روال متن وضعیت(code: صحیح): رشتهNot Found برای ۴۰۴.نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
تجزیه نوع محتوا ParseContentType
روال تجزیه نوع محتوا(header: رشته): نوع محتواContent-Type را تجزیه میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
دریافت پارامتر ParamGet
روال دریافت پارامتر(ct: نوع محتوا، key: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam
تجزیه چندبخشی ParseMultipart
روال تجزیه چندبخشی(data: تهی*، n: صحیح، boundary: رشته): بخشهای چندبخشیmultipart/form-data را با مرز دادهشده به بخشها تقسیم میکند؛ برای گرفتن پروندههای بارگذاریشده.نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
نویسنده چندبخشی جدید NewMultipartWriter
روال نویسنده چندبخشی جدید(): نویسنده چندبخشینمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
سرآیند نوع محتوا ContentTypeHeader
روال سرآیند نوع محتوا(w: نویسنده چندبخشی): رشتهContent-Type که باید با این بدنه فرستاده شود.نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
نوشتن فیلد WriteField
روال نوشتن فیلد(w &: نویسنده چندبخشی، name: رشته، value: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
نوشتن پرونده WriteFileBytes
روال نوشتن پرونده(w &: نویسنده چندبخشی، name: رشته، filename: رشته، content_type: رشته، data: تهی*، n: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
نوشتن پرونده متنی WriteFileStr
روال نوشتن پرونده متنی(w &: نویسنده چندبخشی، name: رشته، filename: رشته، content_type: رشته، data: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam
بستن نویسنده CloseWriter
روال بستن نویسنده(w &: نویسنده چندبخشی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam