আমি মনে করি অনুরোধে সামগ্রী-প্রকারের শিরোনামটি ম্যাপিংয়ের কাজও হবে। আপনি যখন কোনও এক্সটেনশন ছাড়াই কোনও ফাইল আপলোড করেন তখনও এটি ক্ষেত্রে কাজ করবে। (যখন ফাইলের নামের অনুরোধে এক্সটেনশন নেই)
ধরুন আপনি এইচটিটিপি পোস্ট ব্যবহার করে আপনার ডেটা প্রেরণ করছেন:
POST /upload2 HTTP/1.1
Host: localhost:7098
Connection: keep-alive
Content-Length: 1047799
Accept: */*
Origin: http://localhost:63342
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundaryPDULZN8DYK3VppPp
Referer: http://localhost:63342/Admin/index.html? _ijt=3a6a054pasorvrljf8t8ea0j4h
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8,az;q=0.6,tr;q=0.4
Request Payload
------WebKitFormBoundaryPDULZN8DYK3VppPp
Content-Disposition: form-data; name="image"; filename="blob"
Content-Type: image/png
------WebKitFormBoundaryPDULZN8DYK3VppPp--
এখানে নাম কন্টেন্ট-টাইপ শিরোনামে ডেটা মাইম টাইপ থাকে। এই মাইম টাইপটিকে কোনও এক্সটেনশনে ম্যাপিং করা আপনার ফাইলটি এক্সটেনশান পেয়ে যাবে :)।
বডি পার্সারকে পুনরায় আকার দিন এই শিরোনামটিকে নামের প্রকারের সাথে কোনও বৈশিষ্ট্যে রূপান্তর করে
File {
domain:
Domain {
domain: null,
_events: { .... },
_eventsCount: 1,
_maxListeners: undefined,
members: [ ... ] },
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
size: 1047621,
path: '/tmp/upload_2a4ac9ef22f7156180d369162ef08cb8',
name: 'blob',
**type: 'image/png'**,
hash: null,
lastModifiedDate: Wed Jul 20 2016 16:12:21 GMT+0300 (EEST),
_writeStream:
WriteStream {
... },
writable: true,
domain:
Domain {
...
},
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
path: '/tmp/upload_2a4ac9ef22f7156180d369162ef08cb8',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 1047621,
closed: true }
}
আপনি এই শিরোনামটি ব্যবহার করতে পারেন এবং ম্যানুয়ালি এক্সটেনশন ম্যাপিং (সাবস্ট্রিং ইত্যাদি ...) করতে পারেন, তবে এর জন্য প্রস্তুত গ্রন্থাগারও রয়েছে। দু'জনের নীচে শীর্ষস্থানীয় ফলাফল ছিল যখন আমি একটি গুগল অনুসন্ধান করেছি
এবং তাদের ব্যবহারও সহজ:
app.post('/upload2', function (req, res) {
console.log(mime.extension(req.files.image.type));
}
উপরে স্নিপেট কনসোল থেকে png মুদ্রণ করবে ।