کتابخانه‌ی استاندارد · شبکه

مایم شبکه net/mime

نوع رسانه‌ی پرونده‌ها، سرآیند Content-Type و بدنه‌ی چندبخشی فرم.

واردسازی شبکه.مایم شبکه
در این صفحه
  1. گونه‌ها
  2. روال‌ها

نوع رسانه (MIME) به مرورگر و برنامه‌ها می‌گوید محتوا چیست، مثل image/png. این بسته نوع را از پسوند پرونده پیدا می‌کند و سرآیند Content-Type را می‌خواند.

فرم‌هایی که پرونده بارگذاری می‌کنند بدنه‌ی multipart/form-data می‌فرستند: چند بخش با یک مرز میانشان. تجزیه چندبخشی آن را می‌خواند و نویسنده چندبخشی آن را می‌سازد.

گونه‌ها

پارامتر نوع محتوا ContentTypeParam

ساختار پارامتر نوع محتوا
یک پارامتر.
نامانگلیسیگونهتوضیح
keykeyرشته = ""نام، با حروف کوچک.
valuevalueرشته = ""مقدار.
net-mime-Types.salam
واردسازی شبکه.مایم شبکه

روال ریشه:
    سرچاپ مایم شبکه.پسوند مایم("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
پایان
خروجیimage/png application/json application/octet-stream text/html; charset=utf-8 text/css OK Not Found Service Unavailable text/html 2 UTF-8 q 0.9

پارامترهای نوع محتوا ContentTypeParams

ساختار پارامترهای نوع محتوا
فهرست پارامترها.
نامانگلیسیگونهتوضیح
itemsitemsوکتور<پارامتر نوع محتوا>پارامترها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam

نوع محتوا ContentType

ساختار نوع محتوا
سرآیند Content-Type تجزیه‌شده.
نامانگلیسیگونهتوضیح
media_typemedia_typeرشته = ""نوع رسانه، با حروف کوچک.
paramsparamsپارامترهای نوع محتواپارامترها، مثل charset.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam

سرآیند بخش MultipartHeader

ساختار سرآیند بخش
یک سرآیند بخش.
نامانگلیسیگونهتوضیح
keykeyرشته = ""نام.
valuevalueرشته = ""مقدار.
net-mime-Multipart.salam
واردسازی شبکه.مایم شبکه
واردسازی فشرده سازی
واردسازی رشته

روال ریشه:
    ناپایا ن := مایم شبکه.نویسنده چندبخشی جدید()
    سرچاپ رشته.شروع با(مایم شبکه.سرآیند نوع محتوا(ن)، "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
پایان
خروجیtrue true true name [] [] مریم 1 note [note.txt] [text/plain] سلام 2 pic [a.png] [image/png] PNG 2 Content-Disposition

سرآیندهای بخش MultipartHeaders

ساختار سرآیندهای بخش
فهرست سرآیندها.
نامانگلیسیگونهتوضیح
itemsitemsوکتور<سرآیند بخش>سرآیندها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam

بخش چندبخشی MultipartPart

ساختار بخش چندبخشی
یک بخش از بدنه‌ی چندبخشی.
نامانگلیسیگونهتوضیح
namenameرشته = ""نام فیلد فرم.
filenamefilenameرشته = ""نام پرونده، اگر بخش پرونده باشد.
content_typecontent_typeرشته = ""نوع محتوای بخش.
headersheadersسرآیندهای بخشهمه‌ی سرآیندهای بخش.
bodybodycompress.ByteBufمحتوای بخش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam

بخش‌های چندبخشی MultipartParts

ساختار بخش‌های چندبخشی
فهرست بخش‌ها.
نامانگلیسیگونهتوضیح
itemsitemsوکتور<بخش چندبخشی>بخش‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam

نویسنده چندبخشی MultipartWriter

ساختار نویسنده چندبخشی
سازنده‌ی بدنه‌ی چندبخشی.
نامانگلیسیگونهتوضیح
boundaryboundaryرشته = ""مرز تصادفی میان بخش‌ها.
bufbufcompress.ByteBufبدنه‌ی ساخته‌شده.
closedclosedمنطقی = نادرستآیا بسته شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Multipart.salam

روال‌ها

پسوند مایم MimeExt

روال پسوند مایم(ext: رشته): رشته
نوع رسانه برای یک پسوند پرونده، بی نقطه و با حروف کوچک، مثل png؛ برای پسوند ناشناخته application/octet-stream.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam

رده مایم MimeType

روال رده مایم(p: رشته): رشته
نوع رسانه از روی مسیر پرونده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-mime-Types.salam

متن وضعیت StatusText

روال متن وضعیت(code: صحیح): رشته
متن استاندارد یک کد وضعیت HTTP، مثل 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