Enctype = 'Multipart / form-data' යන්නෙන් අදහස් කරන්නේ කුමක්ද?


Answers:


1596

ඔබ POST ඉල්ලීමක් කරන විට, යම් ආකාරයකින් ඉල්ලීමෙහි ශරීරය සාදන දත්ත සංකේතනය කළ යුතුය.

HTML ආකෘති කේතීකරණ ක්‍රම තුනක් සපයයි.

  • application/x-www-form-urlencoded (පෙරනිමිය)
  • multipart/form-data
  • text/plain

එකතු කිරීමේ කටයුතු සිදු කෙරෙමින් පැවතුනද application/jsonඑය අත්හැර දමා ඇත.

(HTML පෝරමයක් ඉදිරිපත් කිරීම හැර වෙනත් ක්‍රම භාවිතයෙන් ජනනය කරන ලද HTTP ඉල්ලීම් සමඟ වෙනත් කේතීකරණ කළ හැකිය. JSON යනු වෙබ් සේවා සමඟ භාවිතා කිරීම සඳහා පොදු ආකෘතියක් වන අතර සමහර ඒවා තවමත් SOAP භාවිතා කරයි.)

ආකෘති වල විශේෂතා බොහෝ සංවර්ධකයින්ට වැදගත් නොවේ. වැදගත් කරුණු:

  • කිසි විටෙකත් භාවිතා නොකරන්න text/plain.

ඔබ සේවාදායක පාර්ශවීය කේතය ලියන විට:

  • multipart/form-dataඔබේ පෝරමයට කිසියම් <input type="file">අංගයක් ඇතුළත් වූ විට භාවිතා කරන්න
  • වෙනත් ආකාරයකින් ඔබට භාවිතා කළ හැකි multipart/form-dataහෝ application/x-www-form-urlencodedනමුත් application/x-www-form-urlencodedවඩාත් කාර්යක්ෂම වනු ඇත

ඔබ සේවාදායක පාර්ශවීය කේතය ලියන විට:

  • කලින් ලියන ලද පෝරම හැසිරවීමේ පුස්තකාලයක් භාවිතා කරන්න

බොහෝමයක් ( පර්ල්ස් හෝ පීඑච්පී CGI->paramහි $_POSTසුපිරි ග්ලෝබල් විසින් නිරාවරණය කරන ලද ) ඔබ වෙනුවෙන් ඇති වෙනස්කම් ගැන සැලකිලිමත් වනු ඇත. සේවාදායකයාට ලැබුණු අමු ආදානය විග්‍රහ කිරීමට උත්සාහ නොකරන්න.

සමහර විට ඔබට ආකෘති දෙකම හැසිරවිය නොහැකි පුස්තකාලයක් සොයාගත හැකිය. පෝරම දත්ත හැසිරවීම සඳහා Node.js හි වඩාත්ම ජනප්‍රිය පුස්තකාලය වන්නේ බහු පාර්ශ්වික ඉල්ලීම් හැසිරවිය නොහැකි බොඩි-පාර්සර් ය (නමුත් හැකි විකල්ප කිහිපයක් නිර්දේශ කරන ලියකියවිලි ඇත).


අමු දත්ත විග්‍රහ කිරීම හෝ උත්පාදනය කිරීම සඳහා ඔබ පුස්තකාලයක් ලියන්නේ නම් (හෝ නිදොස්කරණය කිරීම), එවිට ඔබ ආකෘතිය ගැන කරදර වීමට පටන් ගත යුතුය. උනන්දුව නිසා ඔබට ඒ ගැන දැන ගැනීමට අවශ්‍ය විය හැකිය.

application/x-www-form-urlencoded URL හි අවසානයේ ඇති විමසුම් නූලකට සමාන හෝ වැඩි වශයෙන් සමාන වේ.

multipart/form-dataසැලකිය යුතු ලෙස වඩා සංකීර්ණ නමුත් එය සම්පූර්ණ ගොනු දත්ත වලට ඇතුළත් කිරීමට ඉඩ දෙයි. ප්රති result ලය පිළිබඳ උදාහරණයක් HTML 4 පිරිවිතරයෙන් සොයාගත හැකිය .

text/plainHTML 5 විසින් හඳුන්වා දී ඇති අතර එය නිදොස් කිරීම සඳහා පමණක් ප්‍රයෝජනවත් වේ - පිරිවිතරයෙන් : ඒවා පරිගණකයෙන් විශ්වාසදායක ලෙස අර්ථ නිරූපණය කළ නොහැක - අනෙක් ඒවා මෙවලම් සමඟ සංයෝජනය වී ඇත ( බොහෝ බ්‍රව්සර්වල සංවර්ධක මෙවලම්වල ඇති ජාල පැනලය වැනි ) වඩා හොඳ යැයි මම තර්ක කරමි. ඒ සඳහා).


5
@ ක්වෙන්ටින් මට සමාවෙන්න, අපි සියලු ආකාර සඳහා බහුපාර්ශ්වය භාවිතා කරන්නේ නම් ඇතිවිය හැකි ගැටලුවක් වනු ඇත්තේ කුමක් ද? ලිපිගොනු සමඟ සුදු කරන්න.
වෙබ්නන්

12
GET පෝරම සඳහා එය තේරුමක් නැති අතර, එය ඉල්ලීම්වල ගොනු ප්‍රමාණය විශාල කරයි.
ක්වෙන්ටින්

Quentin පෙරනිමියෙන් බහුපද ආකෘති දත්ත ප්‍රවාහයක් ලෙස යවන්නේද?
වගාකරු

එන්ක්ටයිපයේ ඇති කොටුව යමක් වෙනුවෙන් පෙනී සිටිනවාද?
පිලිප් රීගෝ

1
"HTML ආකෘති ENC oding ක්‍රම තුනක් සපයයි"
Quentin

456

අපි එය භාවිතා කළ යුත්තේ කවදාද?

ක්වෙන්ටින්ගේ පිළිතුර හරි ය: multipart/form-dataපෝරමයේ ගොනු උඩුගත කිරීමක් තිබේ නම් භාවිතා කරන්න, application/x-www-form-urlencodedඑසේ නොමැතිනම් ඔබ මඟ හැරියහොත් එය පෙරනිමිය enctypeවේ.

මම යනවා:

  • තවත් HTML5 යොමු කිහිපයක් එකතු කරන්න
  • පෝරමයක් ඉදිරිපත් කිරීමෙන් ඔහු නිවැරදි වන්නේ මන්දැයි පැහැදිලි කරන්න

HTML5 යොමු

මේ සඳහා අවස්ථා තුනක් තිබේ enctype:

  • application/x-www-form-urlencoded
  • multipart/form-data( RFC7578 වෙත පිරිවිතර ලකුණු )
  • text/plain. මෙය "පරිගණකයෙන් විශ්වාසදායක ලෙස අර්ථ නිරූපණය කළ නොහැක", එබැවින් එය කිසි විටෙකත් නිෂ්පාදනයේදී භාවිතා නොකළ යුතු අතර, අපි ඒ පිළිබඳව තවදුරටත් සොයා බලන්නේ නැත.

උදාහරණ ජනනය කරන්නේ කෙසේද?

ඔබ එක් එක් ක්‍රමයට උදාහරණයක් දුටු පසු, ඒවා ක්‍රියාත්මක වන ආකාරය සහ ඔබ ඒවා භාවිතා කළ යුත්තේ කවදාද යන්න පැහැදිලි වේ.

ඔබට මෙය භාවිතා කරමින් උදාහරණ ඉදිරිපත් කළ හැකිය:

පෝරමය අවම .htmlගොනුවකට සුරකින්න :

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8"/>
  <title>upload</title>
</head>
<body>
<form action="http://localhost:8000" method="post" enctype="multipart/form-data">
  <p><input type="text" name="text1" value="text default">
  <p><input type="text" name="text2" value="a&#x03C9;b">
  <p><input type="file" name="file1">
  <p><input type="file" name="file2">
  <p><input type="file" name="file3">
  <p><button type="submit">Submit</button>
</form>
</body>
</html>

අපි පෙරනිමි පෙළ අගය සකසා a&#x03C9;b, ඉන් අදහස් aωbනිසා ωU+03C9, එම බයිට් වන 61 CF 89 62UTF-8.

උඩුගත කිරීම සඳහා ගොනු සාදන්න:

echo 'Content of a.txt.' > a.txt

echo '<!DOCTYPE html><title>Content of a.html.</title>' > a.html

# Binary file containing 4 bytes: 'a', 1, 2 and 'b'.
printf 'a\xCF\x89b' > binary

අපගේ කුඩා echo සේවාදායකය ධාවනය කරන්න:

while true; do printf '' | nc -l 8000 localhost; done

ඔබගේ බ්‍රව්සරයේ HTML විවෘත කර, ගොනු තෝරන්න සහ ඉදිරිපත් කිරීම මත ක්ලික් කර පර්යන්තය පරීක්ෂා කරන්න.

nc ලැබුණු ඉල්ලීම මුද්‍රණය කරයි.

පරීක්ෂා කර ඇත්තේ: උබුන්ටු 14.04.3, ncබීඑස්ඩී 1.105, ෆයර්ෆොක්ස් 40.

බහුපාර්ට් / පෝරම-දත්ත

ෆයර්ෆොක්ස් යවන ලදි:

POST / HTTP/1.1
[[ Less interesting headers ... ]]
Content-Type: multipart/form-data; boundary=---------------------------735323031399963166993862150
Content-Length: 834

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="text1"

text default
-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="text2"

aωb
-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file1"; filename="a.txt"
Content-Type: text/plain

Content of a.txt.

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file2"; filename="a.html"
Content-Type: text/html

<!DOCTYPE html><title>Content of a.html.</title>

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file3"; filename="binary"
Content-Type: application/octet-stream

aωb
-----------------------------735323031399963166993862150--

ද්විමය ගොනුව සහ පෙළ ක්ෂේත්‍රය සඳහා, බයිට් 61 CF 89 62( aωbයූටීඑෆ් -8 හි) වචනාර්ථයෙන් යවනු ලැබේ. ඔබට එය සත්‍යාපනය කළ හැකිය nc -l localhost 8000 | hd, එයින් කියවෙන්නේ බයිට්:

61 CF 89 62

යවන ලදි ( 61== 'a' සහ 62== 'b').

එබැවින් එය පැහැදිලි ය:

  • Content-Type: multipart/form-data; boundary=---------------------------735323031399963166993862150අන්තර්ගත වර්ගය සකසා, multipart/form-dataලබා දී ඇති boundaryනූලෙන් ක්ෂේත්‍ර වෙන් කර ඇති බව පවසයි .

    නමුත් මෙය සැලකිල්ලට ගන්න:

    boundary=---------------------------735323031399963166993862150

    --ඇත්ත බාධකයට වඩා අඩු තාත්තා දෙකක් ඇත

    -----------------------------735323031399963166993862150

    මෙයට හේතුව සම්මතයට ඉරක් දෙකකින් ආරම්භ කිරීම අවශ්‍ය වේ --. අනෙක් ඉරක් ලෙස පෙනෙන්නේ ෆයර්ෆොක්ස් අත්තනෝමතික සීමාව ක්‍රියාත්මක කිරීමට තෝරාගත් ආකාරයයි. RFC 7578 පැහැදිලිවම සඳහන් කරන්නේ එම ප්‍රමුඛ ඉරක් --දෙක අවශ්‍ය බවයි:

    4.1. බහු මායිම් / ආකෘති-දත්තවල "මායිම්" පරාමිතිය

    අනෙකුත් බහුපාර්ශ්වික වර්ග මෙන්, කොටස් මායිම් පරිසීමකය සමඟ වෙන් කර ඇති අතර, CRLF, "-" සහ "මායිම්" පරාමිතියේ වටිනාකම භාවිතා කර ඉදිකර ඇත.

  • සෑම ක්ෂේත්‍රයක්ම එහි දත්ත වලට පෙර උප ශීර්ෂයන් ලබා ගනී : Content-Disposition: form-data;, ක්ෂේත්‍රය name, සහ filename, පසුව දත්ත.

    සේවාදායකයා ඊළඟ මායිම් තීරුව තෙක් දත්ත කියවයි. බ්රවුසරය කිසිදු ක්ෂේත්රයක නොපෙන්වන මායිමක් තෝරා ගත යුතුය, එබැවින් ඉල්ලීම් අතර සීමාව වෙනස් විය හැකිය.

    අපට අද්විතීය මායිම ඇති බැවින්, දත්ත කේතනය කිරීම අවශ්‍ය නොවේ: ද්විමය දත්ත එවනු ලැබේ.

    TODO: ප්‍රශස්ත මායිම් ප්‍රමාණය ( log(N)මම ඔට්ටු අල්ලනවා) සහ එය සොයා ගන්නා ඇල්ගොරිතමයේ නම / ධාවන කාලය කුමක්ද? විමසනුයේ: /cs/39687/find-the-shortest-afterence-that-is-not-a-sub-afterence-of-a-set-of-afteences

  • Content-Type බ්‍රව්සරය ස්වයංක්‍රීයව තීරණය කරයි.

    එය හරියටම තීරණය කරන්නේ කෙසේද යන්න විමසනු ලැබුවේ: උඩුගත කරන ලද ගොනුවක mime වර්ගය බ්‍රව්සරය විසින් තීරණය කරන්නේ කෙසේද?

යෙදුම / x-www-form-urlencoded

දැන් වෙනස් enctypeකිරීමට application/x-www-form-urlencoded, බ්රව්සරය, කිරිම් නැවත පූරණය කරන්න.

ෆයර්ෆොක්ස් යවන ලදි:

POST / HTTP/1.1
[[ Less interesting headers ... ]]
Content-Type: application/x-www-form-urlencoded
Content-Length: 51

text1=text+default&text2=a%CF%89b&file1=a.txt&file2=a.html&file3=binary

පැහැදිලිවම ගොනු දත්ත යවා නැත, මූලික නම් පමණි. එබැවින් මෙය ගොනු සඳහා භාවිතා කළ නොහැක.

පෙළ ක්ෂේත්ර සඳහා පරිදි, අපි වගේ බව සුපුරුදු අක්ෂර බලන්න aසහ b-මුද්රිත නොවන අය මෙන් අතර එක් බයිටය තුල යවන ලද අතර, 0xCFසහ 0x89රැගෙන 3 බයිට් එක් එක්: %CF%89!

සංසන්දනය

ගොනු උඩුගත කිරීම් බොහෝ විට මුද්‍රණය කළ නොහැකි අක්ෂර (උදා: රූප) අඩංගු වන අතර පෙළ ආකෘති කිසි විටෙකත් සිදු නොවේ.

අප දැක ඇති උදාහරණ වලින්:

  • multipart/form-data: පණිවිඩයට මායිම් ඉහළින් බයිට් කිහිපයක් එකතු කරන අතර එය ගණනය කිරීම සඳහා යම් කාලයක් ගත කළ යුතුය, නමුත් එක් එක් බයිට් එක බයිට් එකකින් යවයි.

  • application/x-www-form-urlencoded: එක් ක්ෂේත්‍රයකට තනි බයිට් සීමාවක් ඇත ( &), නමුත් මුද්‍රණය කළ නොහැකි සෑම අක්ෂරයක් සඳහාම 3xරේඛීය පොදු සාධකයක් එක් කරයි .

එම නිසා, අපට ලිපිගොනු යැවිය හැකි වුවද application/x-www-form-urlencoded, අපට එය අවශ්‍ය නොවන්නේ එය එතරම් අකාර්යක්ෂම බැවිනි.

නමුත් පෙළ ක්ෂේත්‍රවල ඇති මුද්‍රණය කළ හැකි අක්ෂර සඳහා, එය වැදගත් නොවන අතර අඩු පිරිවැයක් ජනනය කරයි, එබැවින් අපි එය භාවිතා කරමු.


3
@ Khanna111 %CF3 දිගු බයිට් කරයි: %, Cසහ F:-) කතාව එය මානව කියවිය හැකි බවට ය.
සිරෝ සැන්ටිලි 郝海东 冠状 病 六四 事件 法轮功

6
OS X හි, එකවර සහ තර්ක ncදෙකම පිළිගන්නේ නැත . නමුත් මෙය මට ප්‍රයෝජනවත් වේ : . -l-pwhile true; do printf '' | nc -l 8000; done
පිලිප්ස්

4
සඳහන් කර නැති කුඩා නමුත් වැදගත් කරුණක් නම්, දක්වා ඇති මායිමට Content-Typeහයිපන් දෙකක් ( --) අඩුවෙන් --තිබීමයි , එනම් පණිවුඩ ශරීරයේ මායිම සැබවින්ම භාවිතා කරන විට, ඔබ එය උපසර්ගය කළ යුතුය . එසේම, අවසාන සීමාව සමඟ උපසර්ගය යෙදිය යුතුය --, නමුත් එය සැලකිය යුතු තරම් පහසුය. Stackoverflow.com/questions/3508252/…
බර්නාඩ්

1
මට කිව හැකි තාක් දුරට, ඕනෑම ඩෑෂ් එකක් මායිමට දැමීමේ කාරණය වන්නේ ඉල්ලීමෙහි වාක්‍ය ඛණ්ඩය ඇසින් පරීක්ෂා කර බැලීමට නොහැකි වීමයි. කරුණාකර ඒවා ඔබේ මායිම් ටෝකනවල භාවිතා නොකරන්න.
ඩිවි මෝගන්

1
Ew ඩිවි මෝර්ගන් ඔබ සම්පූර්ණයෙන්ම හරි. මම පෝස්ට් සංස්කරණය කර මායිම් නූලෙන් ඉර ඉවත් කළෙමි.
මැක්ස්

91

enctype='multipart/form-dataPOST හරහා ලිපිගොනු යැවීමට ඉඩ දෙන කේතීකරණ වර්ගයකි . ඉතා සරළව, මෙය කේතනය නොකර ගොනු යැවිය නොහැක POST .

පෝරමයක් හරහා ගොනුවක් උඩුගත කිරීමට පරිශීලකයාට ඉඩ දීමට ඔබට අවශ්‍ය නම්, ඔබ මෙම එන්ක්ටයිප් භාවිතා කළ යුතුය .


ඉතින් .. ගොනුව ද්විමය ගොනුවක් නොවේ නම් අපට මෙය නොමැතිව වැඩ කළ හැකිද?
යුගල් ජින්ඩ්ල්

මා තේරුම් ගත් දෙයින් ඔබට multipart/form-dataද්විමය නොවන ලිපිගොනු යැවීම සඳහා භාවිතා කළ හැකි නමුත් එය අකාර්යක්ෂම වේ. application/x-www-form-urlencodedද්විමය නොවන දත්ත යැවීම සඳහා නිවැරදි ක්‍රමය භාවිතා කිරීම බව මම විශ්වාස කරමි, නමුත් ද්විමය නොවන ලිපිගොනු පිළිබඳ වැඩි අත්දැකීම් ඇති අයෙකුට මාව නිවැරදි කිරීමට අවශ්‍ය විය හැකිය.
මැට් ඇස්බරි

11
multipart/form-dataගොනුවක් යැවීම සඳහා භාවිතා කිරීමේ ඇති ප්‍රධාන වාසිය නම් එය ෆ්‍රොන්ටෙන්ඩ් සහ බැකෙන්ඩ් යන දෙකින්ම ස්වයංක්‍රීයව ක්‍රියා කිරීමයි. ඔබ විශේෂ හැසිරවීමක් කළ යුතු නැත. පෙළ පමණක් අඩංගු විය යුතු වුවත් සියලුම ලිපිගොනු ද්විමය වේ. application/x-www-form-urlencodedඅමුණා ඇති ලිපිගොනු නොමැතිව පෝරමයක් තැපැල් කිරීමට සම්මත ක්‍රමය වේ. multipart/form-dataඅමුණා ඇති ලිපිගොනු (ය) සහිත පෝරමයක් තැපැල් කිරීමට සම්මත ක්‍රමය වේ. ( සේවාදායකයා සහ සේවාදායකයා අතර සන්නිවේදනය සඳහා පොදු වන application/jsonසහ වැනි තවත් බොහෝ කේතන ක්‍රම application/json-patch+jsonතිබේ.)
ඩැනියෙල් ලූනා

6
එහි වටිනාකම පෙන්වා දීම මඟින් ඔබට ඔබේ රූපය පදනම් 64 කේතනය කර සරල වචන දත්ත ලෙස යැවිය හැකිය.
ජේම්ස්

4
ඉහත @ ප්‍රොස්පෙරෝගේ අදහස් දැක්වීමට අමතරව: ඔබට භාවිතා නොකර POST හරහා ලිපිගොනු යැවිය හැකිය multipart/form-data. ඔබට කළ නොහැකි දෙය නම් ජාවාස්ක්‍රිප්ට් නොමැතිව සාමාන්‍ය HTML පෝරමයක් ඉදිරිපත් කිරීමයි. ජාවාස්ක්‍රිප්ට් භාවිතා නොකර ලිපිගොනු තැපැල් කිරීමට ඔබට ඉඩ දීමට HTML සපයන multipart/form-dataඑකම යාන්ත්‍රණය භාවිතා කිරීමට පෝරමයක් සැකසීම . පිළිතුරෙහි මෙය ප්‍රමාණවත් නොවන බව මට හැඟේ, සහ නැතිව ලිපිගොනු යැවීමට ඇති නොහැකියාව HTTP හි සීමාවක් යැයි බොළඳ පා er කයෙකු සිතිය හැකිය ; එය එසේ නොවේ. multipart/form-data
මාර්ක් අමරි

85

පෝරමයක් ඉදිරිපත් කරන විට, ඔබේ බ්‍රව්සරයට HTTP ප්‍රොටෝකෝලය හරහා ජාලයේ පණිවිඩයක් TCP / IP ප්‍රොටොකෝල් පණිවිඩ ව්‍යුහයක් තුළ නිසි ලෙස ඇතුළත් කර යැවීමට කියන්න. HTML පිටුවකට සේවාදායකයට දත්ත යැවීමට ක්‍රමයක් ඇත: භාවිතා කිරීමෙන්<form> s .

පෝරමයක් ඉදිරිපත් කළ විට, HTTP ඉල්ලීමක් නිර්මාණය කර සේවාදායකයට යවනු ලැබේ, පණිවිඩයේ පෝරමයේ ක්ෂේත්‍ර නාම සහ පරිශීලකයා විසින් පුරවන ලද අගයන් අඩංගු වේ. මෙම සම්ප්රේෂණ සමග සිදු කළ හැකි POSTහෝ GET HTTP ක්රම .

  • POST ඔබේ බ්‍රව්සරයට HTTP පණිවිඩයක් ගොඩනඟා සියලු අන්තර්ගතයන් පණිවිඩයේ සිරුරට දමන්න (දේවල් කිරීමට ඉතා ප්‍රයෝජනවත් ක්‍රමයක්, වඩා ආරක්ෂිත සහ නම්‍යශීලී).
  • GETපෝරම දත්ත විමසුම් තුළ ඉදිරිපත් කරනු ඇත . දත්ත නිරූපණය සහ දිග පිළිබඳව එයට යම් සීමාවන් තිබේ.

ඔබගේ පෝරමය සේවාදායකයට යවන්නේ කෙසේදැයි සඳහන් කරමින්

ගුණාංගයට enctypeහැඟීමක් ඇත්තේ POSTක්‍රමයක් භාවිතා කරන විට පමණි . නිශ්චිතව දක්වා ඇති විට, පෝරමය එහි අන්තර්ගතය නිශ්චිත ආකාරයකින් කේතනය කිරීමෙන් යැවීමට බ්‍රව්සරයට උපදෙස් දෙයි. MDN වෙතින් - පෝරම enctype :

ක්‍රමයේ ගුණාංගයේ අගය තැපැල් වූ විට, එන්ක්ටයිප් යනු MIME වර්ගයේ අන්තර්ගතය වන අතර එය පෝරමය සේවාදායකයට ඉදිරිපත් කිරීමට භාවිතා කරයි.

  • application/x-www-form-urlencoded: මෙය පෙරනිමියයි. පෝරමය යවන විට, සියලු නම් සහ අගයන් එකතු කර URL කේතීකරණය අවසාන නූලෙන් සිදු කෙරේ.
  • multipart/form-data: අක්ෂර කේතනය කර නොමැත. පෝරමයට ගොනු උඩුගත කිරීමේ පාලනයක් ඇති විට මෙය වැදගත් වේ. ඔබට ද්විමය ගොනුව යැවීමට අවශ්‍ය වන අතර මෙය බිට්ස්ට්රීම් වෙනස් නොවන බව සහතික කරයි.
  • text/plain: අවකාශය පරිවර්තනය වේ, නමුත් තවත් කේතන ක්‍රමයක් සිදු නොවේ.

ආරක්ෂාව

ආකෘති පත්‍ර ඉදිරිපත් කිරීමේදී, RFC 7578 හි 7 වන වගන්තියේ දක්වා ඇති පරිදි සමහර ආරක්ෂක ගැටළු මතු විය හැකිය : බහු පාර්ශ්වික ආකෘති දත්ත - ආරක්ෂක සලකා බැලීම් :

බොහෝ පෝරම සැකසුම් මෘදුකාංග පරිශීලකයා විසින් සපයන ලද ආකෘති දත්ත
සංවේදීතාවයෙන් සැලකිය යුතුය , මන්ද එය බොහෝ විට රහස්‍ය හෝ පෞද්ගලිකව
හඳුනා ගැනීමේ තොරතුරු අඩංගු වේ . වෙබ් බ්‍රව්සර්වල "ස්වයංක්‍රීයව පිරවීම" විශේෂාංග පුළුල් ලෙස භාවිතා වේ;
වෙනත් ආකාරයකින්
අහිංසක කාර්යයන් සම්පූර්ණ කිරීමේදී නොදැනුවත්ව රහස්‍ය තොරතුරු යැවීමට පරිශීලකයින් රැවටීමට මේවා භාවිතා කළ හැකිය . බහුපාර්ට් / පෝරම-දත්ත
අඛණ්ඩතාව පරීක්ෂා කිරීම, රහස්‍යභාවය සහතික කිරීම, පරිශීලක
ව්‍යාකූලතා මඟහරවා ගැනීම හෝ වෙනත් ආරක්ෂක අංගයන් සඳහා කිසිදු අංගයක් සපයන්නේ නැත ; එම උත්සුකයන් විය යුතුය
ආකෘති පත්ර පිරවීම සහ ආකෘති-දත්ත අර්ථ නිරූපණය කරන යෙදුම් මගින් විසඳිය .

පෝරම ලබාගෙන ඒවා ක්‍රියාවට නංවන අයදුම්පත් යැවීමට අදහස් නොකළ ආකෘති පත්‍ර සැකසුම් අඩවියට නැවත දත්ත ලබා නොදීමට වගබලා ගත යුතුය.

ලබන්නාගේ ගොනු අවකාශයේ
ලිපිගොනු නොදැනුවත්ව නැවත ලිවීම නොකිරීමට අන්තර්ගත-විස්ථාපන ශීර්ෂ ක්ෂේත්‍රයේ ගොනු නාමය අර්ථ නිරූපණය කිරීමේදී එය වැදගත්
වේ.

ඔබ සංවර්ධකයෙකු නම් මෙය ඔබ ගැන සැලකිලිමත් වන අතර ඔබේ සේවාදායකයා විසින් පරිශීලකයින් විසින් ඉදිරිපත් කරන ලද ආකෘති සැකසෙනු ඇති අතර එමඟින් සංවේදී තොරතුරු අඩංගු විය හැකිය.


1
නවතම සංස්කරණයෙන් පසු ආරක්ෂාව පිළිබඳ දේවල් සියල්ලම කරන්නේ කුමක්ද යන ප්‍රශ්නයට අදාළ enctypeනොවේ. මම එය සිට වචනාර්ථයෙන් කියලා multipart/form-dataRFC, එතෙකුදු එය දත්ත ලෙස යවන යන්න මුලුමනින් ම ප්රලම්බ බව ආකෘති පත්ර ඉදිරිපත් ගැන ආරක්ෂක සලකා බැලීම් හිතුවක්කාරී හැලීම් තියෙන්නේ application/x-www-form-urlencodedහෝ multipart/form-data.
මාර්ක් අමරි

40

enctype='multipart/form-data'එයින් අදහස් වන්නේ කිසිදු අක්ෂර කේතනය නොකරන බවයි. සේවාදායකයට ගොනු උඩුගත කිරීමේදී මෙම වර්ගය භාවිතා කරන්නේ එබැවිනි.
ඒ නිසා multipart/form-dataයම් ආකාරයක උඩුගත කිරීම සඳහා, ගොනුවේ අන්තර්ගතයන් වැනි, ද්විමය දත්ත අවශ්ය වූ විට භාවිතා කරයි


8

පෝරමයක් භාවිතා කර URL පරාමිතියක් තුළ ගොනු අන්තර්ගතය තැබිය නොහැකි බැවින් ක්‍රමවේදය POST වෙත සකසන්න.

එන්ක්ටයිපයේ අගය බහුපාර්ට් / පෝරම-දත්ත ලෙස සකසන්න, මන්ද දත්ත කොටස් කිහිපයකට බෙදා ඇති අතර, එක් එක් ගොනුවට එකක් සහ ඒවා සමඟ යැවිය හැකි පෝරමය ශරීරයේ පෙළ සඳහා එකක් වේ.


POSTපෝරමයක් හරහා ගොනුවක් ඉදිරිපත් කිරීම සඳහා එය ප්‍රමාණවත් විය හැකි බවත්, එකතු multipart/form-dataකිරීම කිසියම් නොපැහැදිලි ආකාරයකින් ප්‍රසාද දීමනාවක් බවත් මෙයින් ගම්‍ය වේ . එය එසේ නොවේ. බොහෝ ලිපිගොනු භාවිතා කිරීම අනිවාර්යයෙන්ම අවශ්‍ය වේ multipart/form-data.
underscore_d

2
  • enctype ( ENC ode TYPE ) ගුණාංගය මඟින් පෝරම දත්ත සේවාදායකයට ඉදිරිපත් කිරීමේදී එය කේතනය කළ යුතු ආකාරය නියම කරයි.
  • බහුපාර්ට් / පෝරම-දත්ත යනු එන්ක්ටයිප් ගුණාංගයේ වටිනාකමෙන් එකකි, එය ගොනු උඩුගත කිරීමක් ඇති ආකෘති මූලද්‍රව්‍යයේ භාවිතා වේ. බහු-කොටස යනු ආකෘති දත්ත බහු කොටස් වලට බෙදා සේවාදායකයට යවයි.

7
මම විශ්වාස කරන්නේ එන්ක්ටයිප් සංකේතාංකන වර්ගයට නොගැලපෙන බවයි. මෙම මට්ටමට සංකේතාංකනයක් නොමැත. මගේ අනුමානය එක්කෝ කේතීකරණ වර්ගය හෝ සංවෘත වර්ගයයි. නමුත් නිසැකවම එය සංකේතාංකන වර්ගය නොවේ.
යෙයෝ

1
ඔබගේ අවසාන වෙඩි උණ්ඩය මෙහි අදාළ වන <head>අතර <body>එය අදාළ නොවේ.
මාර්ක් අමරි

0

සාමාන්‍යයෙන් මෙය ඔබට POST පෝරමයක් ඇති විට එය දත්ත ලෙස ගොනු උඩුගත කිරීමක් අවශ්‍ය වේ ... මෙය සේවාදායකයාට එය මාරු කළ දත්ත සංකේතනය කරන්නේ කෙසේදැයි කියනු ඇත, එවැනි අවස්ථාවකදී එය කේතනය නොවනු ඇත, මන්ද එය මාරු කර උඩුගත කරනු ඇත ලිපිගොනු සේවාදායකයට හෝ පීඩීඑෆ් උඩුගත කිරීමේදී උදාහරණයක් ලෙස


-3

ආකෘති පත්‍ර දත්ත සේවාදායකයට ඉදිරිපත් කිරීමේදී එය කේතනය කළ යුතු ආකාරය එන්ක්ටයිප් ගුණාංගයෙන් නියම කෙරේ.

එන්ක්ටයිප් ගුණාංගය භාවිතා කළ හැක්කේ method = "post" නම් පමණි.

අක්ෂර කිසිවක් කේතනය කර නොමැත. ඔබ ගොනු උඩුගත කිරීමේ පාලනයක් ඇති පෝරම භාවිතා කරන විට මෙම අගය අවශ්‍ය වේ

සිට W3Schools


2
මෙම උපුටා දැක්වීම පවා සඳහන් නොවේ multipart/form-data. එය ද තරමක් අපැහැදිලි ය; “අක්ෂර සංකේතවත් කර නැත” යන වාක්‍යයේ අර්ථය කුමක්ද? -1.
මාර්ක් අමරි
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.