तकनीकी तौर पर बेस 64 बाइनरी डेटा के पाठ प्रतिनिधित्व है - अगर आप के साथ इस ऊपर उत्तर सही हैं ठीक कर रहे हैं। यदि आप वास्तविक बाइनरी डेटा भेजना चाहते हैं तो आपको FormData का उपयोग करना होगा।
यदि मैं आपका प्रश्न सही तरीके से पढ़ रहा हूं तो आप कैनवास तत्व में HTML "स्क्रीनशॉट" सहेज रहे हैं। यदि ऐसा है तो toDataURL
पढ़ने के बजाय आपको toBlob का उपयोग करना चाहिए। यह आपको बाइनरी डेटा है कि हम FormData
var form = new FormData();
form.append('image', blob, 'image.jpg');
का उपयोग कर भेज सकते हैं दे देंगे
ऊपर नियमित XMLHttpRequest
का उपयोग कर भेजने के हो सकते हैं:
var request = new XMLHttpRequest();
request.open('POST', 'http://foo.com/submitform.php');
request.send(form);
कार्य उदाहरण ->codepen
यदि आप क्रोम निरीक्षक पर गौर करेंगे आप देखेंगे कि सही मल्टीपार्ट अनुरोध बनाया गया है:
------WebKitFormBoundaryGWsPW93HnMPQFcXB
Content-Disposition: form-data; name="image"; filename="image.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryGWsPW93HnMPQFcXB--
तुम भी jQuery के साथ प्रपत्र ऊपर भेज सकते हैं:
$.ajax({
url: 'http://foo.com/submitform.php',
type: 'POST',
data: form,
processData: false,
contentType: false
});
अद्यतन
बस PHP में सर्वर साइड पर फाइल अपलोड निपटने के बारे में आपकी जानकारी में देखा था। अपलोड की गई फ़ाइल $ _FILES सरणी में उपलब्ध है:
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
echo "File was successfully uploaded.\n";
} else {
echo "Error";
}
echo 'File info:';
print_r($_FILES);
?>
स्रोत
2016-10-17 23:11:30
आपको इस पोस्ट के जवाब द्वारा रुचि हो सकती है http://stackoverflow.com/questions/19148065/how-to-post-binary-file-from-jquery-client-to-java-server- उपयोग-आराम –