यह केवल wget के साथ करना संभव है। कम से कम संस्करण 1.13.4 के साथ और शायद अन्य। --पोस्ट-फ़ाइल विकल्प आपको एक फ़ाइल भेजने के लिए निर्दिष्ट करने की अनुमति देता है, जब तक कि पोस्टडेटा फ़ाइल ठीक से निर्मित न हो जाए।
मैंने बाइनरी फाइलों के साथ इसका परीक्षण भी किया है और यह उम्मीद के मुताबिक काम करता है। आपको फ़ाइल को आधारभूत करने की आवश्यकता नहीं है, लेकिन आपको यह सुनिश्चित करने की आवश्यकता है कि आपकी फ़ाइल में सीमा नहीं है।
यह काम करने के लिए आवश्यक न्यूनतम आदेश होगा:
wget --header="Content-type: multipart/form-data boundary=FILEUPLOAD" --post-file postfile http://domain/uploadform
और पोस्टडेटा फ़ाइल में कुछ इस तरह की आवश्यकता होगी:
--FILEUPLOAD
Content-Disposition: form-data; name="comment"
I love uploading files!
--FILEUPLOAD
Content-Disposition: form-data; name="uploadFile"; filename="myfile.bin";
Content-Type: application/octet-stream
Media Type: application/octet-stream
Give me some automated file upload action!
--FILEUPLOAD--
कई विवरण यहाँ महत्वपूर्ण हैं:
- पोस्ट डेटा फ़ाइल में लाइनें \ r \ n के साथ समाप्त की जाती हैं। एकमात्र अपवाद फ़ाइल संदर्भ के अंदर डेटा है।
- पोस्टडेटा में प्रत्येक BOUNDARY विशेषता जरूर कॉल करने के लिए कॉल में BOUNDARY मान का मिलान करें। (उदाहरण में FILEUPLOAD)
- सभी सीमाएँ दो हाइफ़न "-" और "r \ n" के साथ समाप्त होती हैं
- अंतिम सीमा को दो अतिरिक्त हाइफ़न "-" और "r \ n" के साथ समाप्त किया गया है
- डेटा, फ़ाइल सामग्री या पैरामीटर मान का प्रत्येक टुकड़ा, एक खाली रेखा "\ r \ n" से घिरा होता है
मैंने सोचा कि यह किसी की मदद कर सकता है क्योंकि कुछ नियंत्रित वातावरणों में विकृति होती है लेकिन कर्ल नहीं।
cat pic.jpg >> postdata
, नोटपैड ++ में लोड किया गया है, और अंतिम सीमा + + - 'ईओएल' को जोड़ा गया है। W3C संदर्भ