আমি একটি প্রাথমিক এইচটিএমএল ফর্ম পেয়েছি যা থেকে আমি ফায়ারবগে পরীক্ষা করছি এমন কিছু তথ্য গ্রহণ করতে পারি।
আমার একমাত্র সমস্যা হ'ল আমি সার্ভারে প্রেরণের আগে ফাইল ডেটা বেসড করার চেষ্টা করছি যেখানে এটি ফর্মটিতে থাকা উচিত ডেটাবেসে সংরক্ষণ করার জন্য।
<input type="file" id="fileupload" />
এবং জাভাস্ক্রিপ্ট + jQuery এ:
var file = $('#fileupload').attr("files")[0];
আমার কাছে উপলভ্য জাভাস্ক্রিপ্টের উপর ভিত্তি করে কিছু অপারেশন রয়েছে: .getAsBinary (), .getAsText (), .getAsTextURL
তবে এগুলির মধ্যে ফেরত ব্যবহারযোগ্য পাঠ্যগুলির মধ্যে কোনওটিই ব্যবহারযোগ্য 'অক্ষর' হিসাবে সন্নিবেশ করা যেতে পারে - আমার আপলোড করা ফাইলটিতে একটি 'পোস্টব্যাক' ঘটতে চাই না, এবং নির্দিষ্ট বিষয়গুলিকে লক্ষ্য করে আমার একাধিক ফর্ম থাকা দরকার তাই এটি গুরুত্বপূর্ণ আমি ফাইলটি পান এবং জাভাস্ক্রিপ্টটি এভাবে ব্যবহার করুন।
আমার কীভাবে ফাইলটি এমনভাবে পাওয়া উচিত যাতে আমি জাভাস্ক্রিপ্ট বেস 64 ব্যবহারকারীর এনকোডারগুলিকে ব্যবহার করতে পারি যা ব্যাপকভাবে উপলব্ধ !?
ধন্যবাদ
আপডেট - এখানে অনুগ্রহ শুরু, ক্রস ব্রাউজার সমর্থন প্রয়োজন !!!
আমি এখানে যেখানে আছি:
<input type="file" id="fileuploadform" />
<script type="text/javascript">
var uploadformid = 'fileuploadform';
var uploadform = document.getElementById(uploadformid);
/* method to fetch and encode specific file here based on different browsers */
</script>
ক্রস ব্রাউজার সমর্থন নিয়ে কয়েকটি সমস্যা:
var file = $j(fileUpload.toString()).attr('files')[0];
fileBody = file.getAsDataURL(); // only would works in Firefox
এছাড়াও, IE সমর্থন করে না:
var file = $j(fileUpload.toString()).attr('files')[0];
সুতরাং আমি এর সাথে প্রতিস্থাপন করতে হবে:
var element = 'id';
var element = document.getElementById(id);
আইই সাপোর্ট এর জন্য।
এটি ফায়ারফক্স, ক্রোম এবং সাফারিতে কাজ করে (তবে ফাইলটি সঠিকভাবে এনকোড করে না, বা কমপক্ষে এটি পোস্ট করার পরে ফাইলটি ঠিক আসে না)
var file = $j(fileUpload.toString()).attr('files')[0];
var encoded = Btoa(file);
এছাড়াও,
file.readAsArrayBuffer()
এইচটিএমএল 5 এ কেবল সমর্থিত বলে মনে হচ্ছে?
প্রচুর লোক প্রস্তাবিত: http://www.webtoolkit.info/javascript-base64.html
তবে এটি কেবলমাত্র ইউটিএফ_ 8 পদ্ধতিতে এন 64 এর কোডটি বেসড করার আগে ত্রুটি দেয়? (বা একটি খালি স্ট্রিং)
var encoded = Base64.encode(file);